如何使用一行代码读取和写入字符串数据,而不使用 commons-io.jar 或任何其他api和
不使用复杂的代码BufferedReader和InputStreamReader。
答案 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);