如何使用forEach语句写入String数组

时间:2014-12-16 00:26:12

标签: java arrays string

我需要从文件中读取并写入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());
        }

    }
}

2 个答案:

答案 0 :(得分:1)

Stream类提供toArray()方法。

http://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#toArray-java.util.function.IntFunction-

如果您只想将这些行放入集合中,请查看以下内容: 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);