【问题标题】:Writing to Files : Printwriter Converting Forward Slash to Backslash写入文件:Printwriter 将正斜杠转换为反斜杠
【发布时间】:2014-11-04 10:52:25
【问题描述】:

Printwriter 为什么要这样做?

    File file = new File("/files/KA.txt");
    writer = new PrintWriter(file);
    writer.write("HELLO");

在上面的代码中,我不断收到一条错误消息:

   java.io.FileNotFoundException: \files\KA.txt (The network path was not found)

除了这不是我指定的路径?然后如何指定要写入的文件 - 通常创建一个新文件并写入此文件?如果 KA.txt 不存在,它也会引发错误 - 我理想情况下想创建一个新文件并写入它。

谢谢

【问题讨论】:

  • 这与PrintWriter无关,与File有关。它只是规范化路径。

标签: java io java-io printwriter


【解决方案1】:

理想情况下,我想创建一个新文件并写入它。

您可以简单地创建一个文件,

PrintWriter writer = new PrintWriter("name.txt", "UTF-8");
writer.println("text");

其中UTF-8 是文件编码。并写入文件,如果文件存在同名,请记住它会覆盖

【讨论】:

  • 是的,但我想将此文件添加到我项目中的特定位置。因此使用正斜杠?
  • 你可以这样做URL url = classLoader.getResource("path/to/folder"); File file = new File(url.toURI());
【解决方案2】:

问题是父 /files 目录尚不存在,因此您必须使用 File.mkdirs 预先创建它。

    File file = new File("/files/KA.txt");
    File parentFile = file.getParentFile();
    parentFile.mkdirs();
    PrintWriter writer = new PrintWriter(file);
    writer.write("HELLO");
    writer.close();

【讨论】:

    猜你喜欢
    • 2014-09-28
    • 2019-11-19
    • 2020-11-10
    • 2016-08-07
    • 2015-01-27
    • 2011-05-16
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多