Как считать массив из файла с помощью Java 8?

 
 
 
Сообщения:3
Добрый день. Есть файл, в котором числа записаны в строчку разделенную пробелами. Когда каждое число находится на новой строчке, то считывается вот так

int[] ints = Files.lines(Paths.get("array1.txt"))
.mapToInt(Integer::parseInt).toArray();

А как считать числа из строки разделенной пробелами?
 
 
Сообщения:256
package javatalks;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;

public class Int2D {
    public static void main(String[] args) throws IOException {
        int[][] int2D = Files.lines(Paths.get("array.txt"))
                .map(Int2D::parse)
                .toArray(int[][]::new);
        System.out.println(Arrays.deepToString(int2D));
    }

    private static int[] parse(String str) {
        return Arrays.stream(str.split("\\s"))
                .mapToInt(Integer::parseInt)
                .toArray();
    }
}


array.txt
1 2 3
4 5 6
7 8 9


Вывод
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
 
 
Сообщения:3
axwer, спасибо. Но можно ли как-нибудь сделать для одномерного массива и без дополнительного метода?
Изменен:26 апр 2020 20:15
 
 
Сообщения:256
    public static void main(String[] args) throws IOException {
        int[] array = Files.lines(Paths.get("array.txt"))
                .flatMap(line -> Arrays.stream(line.split("\\s")))
                .mapToInt(Integer::parseInt)
                .toArray();
        System.out.println(Arrays.toString(array));
    }
 
 
Сообщения:3
Уже сам сделал, но все равно огромное спасибо, что направил в нужное русло.
 
 
Сообщения:256
Пожалуйста
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет