powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с файлом
9 сообщений из 9, страница 1 из 1
Работа с файлом
    #39684559
Beginner10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет я тут новенький)
У меня не получается написать матрицу m n, чтобы потом матрицу любого размера выводило в текстовом файле.
Прошу можете помочь написать код
...
Рейтинг: 0 / 0
Работа с файлом
    #39684560
Beginner10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Beginner10,
я правильно написал?
Код: java
1.
2.
3.
4.
5.
while (input.next()!=null)while (in

This will consume something from the scanner input stream. Instead, try using while (input.hasNextInt())

Depending on how robust you want your code to be, you should also check inside the for loop that something is available to be read.
...
Рейтинг: 0 / 0
Работа с файлом
    #39684561
Beginner10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Beginner10,

Просто нужно чтобы я ввел любой размер матрицы и он выводился в txt файле
...
Рейтинг: 0 / 0
Работа с файлом
    #39684562
Beginner10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Beginner10,
Правильно?
Код: 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.
Scanner input = new Scanner (new File("src/array.txt"));
// pre-read in the number of rows/columns
int rows = 0;
int columns = 0;
while(input.hasNextLine())
{
    ++rows;
    Scanner colReader = new Scanner(input.nextLine());
    while(colReader.hasNextInt())
    {
        ++columns;
    }
}
int[][] a = new int[rows][columns];

input.close();

// read in the data
input = new Scanner(new File("src/array.txt"));
for(int i = 0; i < rows; ++i)
{
    for(int j = 0; j < columns; ++j)
    {
        if(input.hasNextInt())
        {
            a[i][j] = input.nextInt();
        }
    }
}
...
Рейтинг: 0 / 0
Работа с файлом
    #39685279
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще одна реинкарнация Насти :)
...
Рейтинг: 0 / 0
Работа с файлом
    #39685300
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiЕще одна реинкарнация Насти :)
Думаю, что они соседи по парте.
...
Рейтинг: 0 / 0
Работа с файлом
    #39685342
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Beginner10Всем привет я тут новенький)
У меня не получается написать матрицу m n, чтобы потом матрицу любого размера выводило в текстовом файле.
Прошу можете помочь написать код

Одно из решений: https://github.com/javadev/matrix-uility/blob/master/src/main/java/matrix/MatrixUtils.java


Код: 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.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
package matrix;

import java.util.Random;
import java.util.Scanner;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.FileReader;
import java.io.FileWriter;

public class MatrixUtils {

    public static void fillByRandom(Matrix1D m) {
        int rowCount = m.getRowCount();
        int colCount = m.getColCount();
        Random random = new Random();

        for (int i = 1; i <= rowCount; i++) {

            for (int j = 1; j <= colCount; j++) {
                try {
                    m.put(i, j, random.nextInt(50));
                } catch (MatrixIndexException e) {
                    System.err.println(e.getMessage());

                }

            }
        }
    }

    public static void fillByNumber(Matrix1D m, int number) {
        int rowCount = m.getRowCount();
        int colCount = m.getColCount();

        for (int i = 1; i <= colCount; i++) {

            for (int j = 1; j <= rowCount; j++) {
                try {
                    m.put(i, j, number);

                } catch (MatrixIndexException e) {
                    System.err.println(e.getMessage());

                }

            }
        }

    }

    public static Matrix1D fillByKeyboard() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter The Number Of Matrix Rows:");
        int rowCount = scan.nextInt();
        System.out.println("Enter The Number Of Matrix Columns:");
        int colCount = scan.nextInt();
        try {
            Matrix1D m = new Matrix1D(rowCount, colCount);
            System.out.println("Enter Matrix Data:");
            for (int i = 1; i <= rowCount; i++) {
                for (int j = 1; j <= colCount; j++) {
                    int value = scan.nextInt();
                     m.put(i, j, value);
                }
            }
            return m;

        } catch (MatrixIndexException ex) {
            System.err.println(ex.getMessage());

        }
        return null;

    }
    
    public static Matrix1D MatrixMultiple(Matrix1D a, Matrix1D b) throws MatrixIndexException {
       
        int aRows = a.getRowCount();
        int aColumns = a.getColCount();
        int bRows = b.getRowCount();
        int bColumns = b.getColCount();

        if (aColumns != bRows) {
            throw new IllegalArgumentException("A:Rows: " + aColumns + " did not match B:Columns " + bRows + ".");
        }

        Matrix1D c = new Matrix1D(aRows, bColumns);
        for (int i = 0; i < aRows; i++) {
            for (int j = 0; j < bColumns; j++) {
                c.put(i+1,j+1,0);
            }
        }

        for (int i = 0; i < aRows; i++) { // aRow
            for (int j = 0; j < bColumns; j++) { // bColumn
                for (int k = 0; k < aColumns; k++) { // aColumn
                    c.put(i+1,j+1,c.get(i+1,j+1) + a.get(i+1, k+1) * b.get(k+1, j+1));
                }
            }
        }

        return c;   
    }

    public static void writeMatrixToFile(Matrix1D 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 Matrix1D loadMatrixFromFile(String filename) {

        try(FileReader reader = new FileReader(filename)) {
            String strFromFile = "";

            while (reader.ready()) {
                strFromFile += (char) reader.read();
            }

            String[] arr = strFromFile.split(" |\n");
            Matrix1D 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;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}




С уважением, Валентин
...
Рейтинг: 0 / 0
Работа с файлом
    #39685440
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov, подозреваю, что перенос строки тут тоже не сработает
...
Рейтинг: 0 / 0
Работа с файлом
    #39685454
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KorcarValentin Kolesnikov, подозреваю, что перенос строки тут тоже не сработает

Всё работает как надо. Нужен правильный текстовый редактор.

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


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