当前位置: 首页 > 知识库问答 >
问题:

BufferedWriter适用于Windows,但不适用于Mac

姬弘文
2023-03-14

所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。

public static void writeLinesToTextFile(String path, String[] lines) {
File file = new File(r + path);
if (!file.exists()) {
    try {
        file.getParentFile().mkdirs();
        file.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

    BufferedWriter bw;

    try {

        bw = new BufferedWriter(new FileWriter(file.getPath()));
        file.delete();
        file.createNewFile();

        for (int i = 0; i < lines.length; i++) {
            //System.out.println(lines[i]);
            bw.write(lines[i]);
            bw.write(System.getProperty("line.separator"));
        }
        bw.flush();
        bw.close();

    } catch (IOException e) {
        e.printStackTrace();
    }

}

我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

共有1个答案

卫彭亮
2023-03-14

创建BufferedWriter后,不要删除文件。在Linux中,每个文件都有一个唯一的文件句柄,因此删除和重新创建具有相同路径的文件会创建两个不同的文件句柄。我不知道Windows做什么,因为我不认为它是一个真正的操作系统,但从你的帖子来看,它似乎使用了相同的文件句柄。

 类似资料:
  • 因此,我正在构建这个游戏和一个地图编辑器/sdk类型的协议。在我运行w7的台式电脑和我的朋友运行w10的笔记本电脑上,一切都工作得非常好。我可以添加对象并四处移动它们(每个对象都有一个自动更新属性窗口),一切都很好。 我目前正在旅行,所以我决定将项目复制到我的macbook上。UI上的一切都仍然有效,除了停止渲染的东西。我知道对象存在于应用程序中,因为我可以单击它们所在的位置,属性更新就像在我的桌

  • 背景: 最近我一直在开发一个程序,该程序对输入数据文件(用户以完整路径或名称的形式给出,如果它位于程序创建的名为inputFiles的文件夹中)执行一些数据分析并吐出一堆输出数据文件(使用CSV)。 问题: 我遇到的问题是,当我运行时。jar在我的Windows机器上,它将创建3个文件夹(InputFiles、TempFiles和OutPutFiles),但当程序在Mac上时,GUI会启动,但不会

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 有人能帮我解决这个问题吗?当然,在Linux上运行时,我已经将路径更改为。

  • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。

  • 我能够成功地打电话给邮递员: /mfp/api/az/v1/token和 /mfpadmin/management-apis/2.0/runtimes/mfp/applications 我正在获取从/mfp/api/az/v1/token接收的承载令牌,并将其添加到/mfp/applications的授权标头中。 我收到了来自两者的200个响应,并从每个API中获取了预期的信息。 然后,我选择从P