Открыть файл, прочитать его, и вывести содержимое в виде массива - Java
Формулировка задачи:
Здравствуйте ! Я начинающий программист. пожалуйста подскажите в чём состоит ошибка. я подозреваю что неверно передаю массив из одного класса в другой, но не знаю как нужно. в Си для этого используются указатели а в Джаве указателей нет (.
Программа простенькая по сути. открыть файл, прочитать его и вывести содержимое в виде массива.
вот головной файл:
вот файл с методами :
вот какую выдает ошибку:
изначально компилятор эти ошибки не подсвечивает... только на этапе выполнения программа падает.
подскажите пожалуйста как реализуется данная задача в java ?
package file; import javax.swing.JOptionPane; public class MFile { public static void main(String[] args) { int i, j; String i1, j1; String [][] array; OROut file = new OROut(); i1=JOptionPane.showInputDialog("Введите количество строк массива"); j1=JOptionPane.showInputDialog("Введите количество столбцов массива"); i=Integer.parseInt(i1); j=Integer.parseInt(j1); file.fopen(); array=file.fread(i, j); //file.fout(i,j); file.fout(array);//строка 19 - в которой выдает ошибку } }
package file; import java.io.File; import java.util.Iterator; import java.util.Scanner; import javax.swing.JOptionPane; public class OROut { Scanner scn; String z[][]; public void fopen() { try { scn = new Scanner(new File("D:/Andrey/Краткие характеристики модели.docx")); } catch (Exception e) {JOptionPane.showMessageDialog(null, "Файл не найден", "ERROR", JOptionPane.ERROR_MESSAGE); } } public String [][] fread(int row, int col) { //String z = String[row][col]; while (scn.hasNext()) { for (int a=0;a<row;a++) { for (int b=0; b<col;b++) { z[a][b]=scn.next(); } } } return z; } public void fout(String[][] array) { for (String[] strings : array) { //строка 38 - в которой выдает ошибку System.out.println(strings); } } //вывод по этому циклу тоже не работает ( /*public void fout(int row, int col) { for (int a=0; a<row; a++) { for (int b=0; b<col; b++) { System.out.print(" "+ z[a][b]); } System.out.println(); } }*/ }
Exception in thread "main" java.lang.NullPointerException at file.OROut.fout(OROut.java:38) at file.MFile.main(MFile.java:19)
Решение задачи: «Открыть файл, прочитать его, и вывести содержимое в виде массива»
textual
Листинг программы
package file; import javax.swing.JOptionPane; public class MFile { public static void main(String[] args) { int i, j; String i1, j1; OROut file = new OROut(); i1=JOptionPane.showInputDialog("Введите количество строк массива"); j1=JOptionPane.showInputDialog("Введите количество столбцов массива"); i=Integer.parseInt(i1); j=Integer.parseInt(j1); file.fopen(); OROut.z = new String[i][j]; file.fread(i, j); file.fout(i,j); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д