我需要从文件中读取并写入String数组。我对forEach语句有点困惑。如何写入String数组,每行1个?
package input;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class ReadFile {
public String[] currentBookData;
public static void getBookData() throws IOException {
try (Stream<String> stream = Files.lines(Paths.get("C:/test.txt"), Charset.defaultCharset())) {
stream.forEach(System.out::println);
}
catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
}
答案 0 :(得分:1)
Stream类提供toArray()
方法。
如果您只想将这些行放入集合中,请查看以下内容: http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#readAllLines%28java.nio.file.Path,%20java.nio.charset.Charset%29
readAllLines()
方法读取所有行并将它们放入List。
答案 1 :(得分:1)
您可以使用
stream.toArray();
或
String [] s = new String[0];
stream.collect(Collectors.toList()).toArray(s);