У меня есть текстовый файл, который я назвал read_me2 (link):Как прочитать файл, содержащий текст и целые числа и сохранить целые числа в списке массива
!This is for testing the ability to read a file
1 3
4 5
6 7
8 9
1
2
3
4
5 6 4
Я хочу, чтобы прочитать его и хранить данных в списке целых чисел с использованием возможностей Java 8. До сих пор я мог это сделать, но, по-моему, субоптимально. Можете ли вы мне помочь. Ниже, пожалуйста, найти свой код:
//This is my package
package ReadAFile;
// Modified http://www.mkyong.com/java8/java-8-stream-read-a-file-line-by-line/
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ReadAndStoreFileContents {
public static void main(String[] args) {
List<String> list2 = new ArrayList<>();
String fileName2 = "/Users/riccardo/Dropbox/A-Data/JavaSandBox/read_me2.txt";
try (Stream<String> stream = Files.lines(Paths.get(fileName2))) {
list2 = stream.
filter(line -> !line.startsWith("!")).
collect(Collectors.toList());
} catch (IOException e) {
e.printStackTrace();
}
// This will be certainly not optimal because I m reading the List a second time
List<Integer> intList = new ArrayList<>();
for(String string : list2){
for(String retval: string.split(" ")){
intList.add(Integer.valueOf(retval));
}
System.out.println(intList.toString());
}
}
}
Спасибо за ваше время,
Риккардо
Этот вопрос лучше подходит для просмотра кода: http://codereview.stackexchange.com/ – nickb