Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с файлом / 9 сообщений из 9, страница 1 из 1
08.08.2018, 06:20
    #39684559
Beginner10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с файлом
Всем привет я тут новенький)
У меня не получается написать матрицу m n, чтобы потом матрицу любого размера выводило в текстовом файле.
Прошу можете помочь написать код
...
Рейтинг: 0 / 0
08.08.2018, 06:21
    #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
08.08.2018, 06:24
    #39684561
Beginner10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с файлом
Beginner10,

Просто нужно чтобы я ввел любой размер матрицы и он выводился в txt файле
...
Рейтинг: 0 / 0
08.08.2018, 06:25
    #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
09.08.2018, 10:35
    #39685279
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с файлом
Еще одна реинкарнация Насти :)
...
Рейтинг: 0 / 0
09.08.2018, 11:00
    #39685300
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с файлом
schiЕще одна реинкарнация Насти :)
Думаю, что они соседи по парте.
...
Рейтинг: 0 / 0
09.08.2018, 11:30
    #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
09.08.2018, 12:35
    #39685440
Korcar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с файлом
Valentin Kolesnikov, подозреваю, что перенос строки тут тоже не сработает
...
Рейтинг: 0 / 0
09.08.2018, 12:41
    #39685454
Valentin Kolesnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с файлом
KorcarValentin Kolesnikov, подозреваю, что перенос строки тут тоже не сработает

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

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


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