Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему выводит ошибку / 7 сообщений из 7, страница 1 из 1
10.08.2018, 09:21
    #39685856
nastyaa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему выводит ошибку
Вот такую-
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Matrix:
[ 9 27 38  ]
  23 9 30  ]
  35 12 15  ]
Enter the file name with extension : file.txt
3
3
9 27 38 
23 9 30 
35 12 15 
Exception in thread "main" java.lang.NullPointerException
	at matrix.Main.main(Main.java:27)
C:\Users\nastya\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
СБОРКА ЗАВЕРШЕНА СО СБОЕМ (общее время: 16 секунды)



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
package matrix;

import java.io.IOException;
import java.util.LinkedList;
import java.util.List;

public class Main {

    public static void main(String[] args) throws MatrixIndexException, IOException {
        Matrix m1 = new Matrix1D(3, 3);
        //Matrix m2 = new Matrix1D(100, 100);
        
        MatrixUtils.fillByRandom(m1);
        //MatrixUtils.fillByRandom(m2);
        
        //Matrix m = MatrixUtils.matrixMultiple(m1, m2);
        
        System.out.println(m1.toString());
        MatrixUtils.writeMatrixToFile(m1, "file.txt");
        
        Matrix m3 = MatrixUtils.loadMatrixFromFile("file.txt");
        System.out.println(m3.toString()); ---------------------------вот здесь говорят ошибка
    }



вот код-
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
 public static void writeMatrixToFile(Matrix m, String filename) {

        try (FileWriter writer = new FileWriter(filename, false)) {
            String strForWrite = "";

            writer.write(String.valueOf(m.getRowCount()));
            writer.write("\n");
            writer.write(String.valueOf(m.getColCount()));
            writer.write("\n");

            for (int i = 1; i <= m.getRowCount(); i++) {
                for (int j = 1; j <= m.getColCount(); j++) {

                    strForWrite += m.get(i, j) + " ";
                }
                strForWrite += "\n";
            }

            writer.write(strForWrite);
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MatrixIndexException e) {
            e.printStackTrace();
        }
    }

    public static Matrix loadMatrixFromFile(String filename) throws FileNotFoundException, IOException {

        try{
            System.out.print("Enter the file name with extension : ");

            Scanner input = new Scanner(System.in);

            File file = new File(input.nextLine());

            input = new Scanner(file);


            while (input.hasNextLine()) {
                String line = input.nextLine();
                System.out.println(line);
            }
            input.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    

    }
}
...
Рейтинг: 0 / 0
10.08.2018, 09:32
    #39685863
Valentin Kolesnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему выводит ошибку
nastyaa,

Этот метод всегда возвращает null:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
    public static Matrix loadMatrixFromFile(String filename) throws FileNotFoundException, IOException {

        try{
            System.out.print("Enter the file name with extension : ");

            Scanner input = new Scanner(System.in);

            File file = new File(input.nextLine());

            input = new Scanner(file);


            while (input.hasNextLine()) {
                String line = input.nextLine();
                System.out.println(line);
            }
            input.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
^^^^^^^^^^^^^^^^^^^^^^    

    }



С уважением, Валентин
...
Рейтинг: 0 / 0
10.08.2018, 09:35
    #39685866
nastyaa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему выводит ошибку
Valentin Kolesnikov,

как можно исправить ошибку(
...
Рейтинг: 0 / 0
10.08.2018, 09:38
    #39685867
Valentin Kolesnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему выводит ошибку
nastyaaValentin Kolesnikov,

как можно исправить ошибку(

Нужно после загрузки строк из файла создат Matrix:

Примерно такой код:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
            String[] arr = strFromFile.split(" |\n");
            Matrix result = new Matrix1D(Integer.valueOf(arr[0]), Integer.valueOf(arr[1]));

            int row = 1;
            int col = 1;

            for (int i = 2; i < arr.length; i++){
                if (!arr[i].equals("")) {
                    result.put(row, col, Integer.valueOf(arr[i]));
                    col++;
                    if (col == result.getColCount() + 1){
                        col = 1;
                        row++;
                    }
                }
            }

            return result;



С уважением, Валентин
...
Рейтинг: 0 / 0
10.08.2018, 09:41
    #39685870
nastyaa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему выводит ошибку
Valentin Kolesnikov,

Нужно создать новый класс? или просто добавить ваш код?
...
Рейтинг: 0 / 0
10.08.2018, 10:05
    #39685886
Valentin Kolesnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему выводит ошибку
nastyaaValentin Kolesnikov,

Нужно создать новый класс? или просто добавить ваш код?

Нужно изменить вызов для

Код: java
1.
        Matrix m3 = MatrixUtils.loadMatrixFromFile("file.txt");



На этот:

Код: java
1.
2.
3.
4.
5.
6.
        System.out.print("Enter the file name with extension : ");

        Scanner input = new Scanner(System.in);

        String fileName = input.nextLine();
        Matrix m3 = MatrixUtils.loadMatrixFromFile(fileName);



С уважением, Валентин
...
Рейтинг: 0 / 0
10.08.2018, 10:29
    #39685900
nastyaa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему выводит ошибку
Valentin Kolesnikov,

спасибо вам)))))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему выводит ошибку / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]