Открыть файл, прочитать его, и вывести содержимое в виде массива - Java

Узнай цену своей работы

Формулировка задачи:

Здравствуйте ! Я начинающий программист. пожалуйста подскажите в чём состоит ошибка. я подозреваю что неверно передаю массив из одного класса в другой, но не знаю как нужно. в Си для этого используются указатели а в Джаве указателей нет (. Программа простенькая по сути. открыть файл, прочитать его и вывести содержимое в виде массива. вот головной файл:
Листинг программы
  1. package file;
  2. import javax.swing.JOptionPane;
  3. public class MFile {
  4. public static void main(String[] args) {
  5. int i, j;
  6. String i1, j1;
  7. String [][] array;
  8. OROut file = new OROut();
  9. i1=JOptionPane.showInputDialog("Введите количество строк массива");
  10. j1=JOptionPane.showInputDialog("Введите количество столбцов массива");
  11. i=Integer.parseInt(i1);
  12. j=Integer.parseInt(j1);
  13. file.fopen();
  14. array=file.fread(i, j);
  15. //file.fout(i,j);
  16. file.fout(array);//строка 19 - в которой выдает ошибку
  17. }
  18. }
вот файл с методами :
Листинг программы
  1. package file;
  2. import java.io.File;
  3. import java.util.Iterator;
  4. import java.util.Scanner;
  5. import javax.swing.JOptionPane;
  6. public class OROut {
  7. Scanner scn;
  8. String z[][];
  9. public void fopen() {
  10. try {
  11. scn = new Scanner(new File("D:/Andrey/Краткие характеристики модели.docx"));
  12. } catch (Exception e) {JOptionPane.showMessageDialog(null, "Файл не найден", "ERROR", JOptionPane.ERROR_MESSAGE);
  13. }
  14. }
  15. public String [][] fread(int row, int col) {
  16. //String z = String[row][col];
  17. while (scn.hasNext())
  18. {
  19. for (int a=0;a<row;a++)
  20. {
  21. for (int b=0; b<col;b++)
  22. {
  23. z[a][b]=scn.next();
  24. }
  25. }
  26. }
  27. return z;
  28. }
  29. public void fout(String[][] array) {
  30. for (String[] strings : array) { //строка 38 - в которой выдает ошибку
  31. System.out.println(strings);
  32. }
  33. }
  34. //вывод по этому циклу тоже не работает (
  35. /*public void fout(int row, int col) {
  36. for (int a=0; a<row; a++)
  37. {
  38. for (int b=0; b<col; b++)
  39. {
  40. System.out.print(" "+ z[a][b]);
  41. }
  42. System.out.println();
  43. }
  44. }*/
  45. }
вот какую выдает ошибку:
Листинг программы
  1. Exception in thread "main" java.lang.NullPointerException
  2. at file.OROut.fout(OROut.java:38)
  3. at file.MFile.main(MFile.java:19)
изначально компилятор эти ошибки не подсвечивает... только на этапе выполнения программа падает. подскажите пожалуйста как реализуется данная задача в java ?

Решение задачи: «Открыть файл, прочитать его, и вывести содержимое в виде массива»

textual
Листинг программы
  1. package file;
  2.  
  3. import javax.swing.JOptionPane;
  4.  
  5. public class MFile {
  6.  
  7. public static void main(String[] args) {
  8.     int i, j;
  9.     String i1, j1;
  10.     OROut file = new OROut();
  11.     i1=JOptionPane.showInputDialog("Введите количество строк массива");
  12.     j1=JOptionPane.showInputDialog("Введите количество столбцов массива");
  13.     i=Integer.parseInt(i1);
  14.     j=Integer.parseInt(j1);
  15.     file.fopen();
  16.     OROut.z = new String[i][j];
  17.     file.fread(i, j);
  18.     file.fout(i,j);
  19.    
  20.  
  21. }
  22. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы