Открыть файл, прочитать его, и вывести содержимое в виде массива - 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);
}
}