读取和写入字符串数据到文件

时间:2014-07-17 12:50:21

标签: java

如何使用一行代码读取和写入字符串数据,而不使用 commons-io.jar 或任何其他api和

不使用复杂的代码BufferedReader和InputStreamReader。

4 个答案:

答案 0 :(得分:2)

如何使用java.nio.file package

中的类
String s = new String(Files.readAllBytes(Paths.get("input.txt")));

如果要将从readAllBytes获得的字节写入文件,可以使用

Files.write(Paths.get("output.txt"), s.getBytes(), StandardOpenOption.CREATE);

或没有s字符串

Files.write(Paths.get("output.txt"),
        Files.readAllBytes(Paths.get("input.txt")),
        StandardOpenOption.CREATE);

但在这种情况下,Files.copy(source, target, options)似乎是更好的选择:

Files.copy(Paths.get("input.txt"), Paths.get("output.txt"),
        StandardCopyOption.REPLACE_EXISTING);

答案 1 :(得分:0)

您可以使用以下行来读取一个字符串中的所有文件内容。

String content = new Scanner(new File(filepath)).useDelimiter("\\Z").next();

使用java.util.Scanner

用于写操作使用

PrintWriter printWriter=new PrintWriter("filename").append("content");

答案 2 :(得分:0)

java.nio.file.Files包中有一大类便捷方法,例如

但您还应该考虑使用lines(),它会返回Stream<String>,这样您就可以懒洋洋地读取行并随时处理它们,而不必将整个文件加载到堆上。

答案 3 :(得分:-1)

看起来,你感兴趣的只是语法糖。你走了:

// write
new PrintWriter("the-file-name.txt", "UTF-8").append("this string").close();

// read
String thisStr = new BufferedReader(new FileReader("the-file-name.txt")).readLine();
System.out.println(thisStr);