Открыть файл, прочитать его, и вывести содержимое в виде массива - 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д