java - java写文本文件不起作用

标签 java printwriter bufferedwriter

这是我的项目架构:

Architecture Project

我想在文件“file.txt”上写入,我尝试使用BufferedWriterPrintWriter但它无法正常工作。

我的 BufferedWriter 代码:

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("FileTLV.txt").getFile());
    try{

        BufferedWriter writer = new BufferedWriter(new FileWriter(file));
        writer.write("I want to write a String");
        writer.close();

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

我的 PrintWriter 代码:

    ClassLoader classLoader = getClass().getClassLoader();
    File file = new File(classLoader.getResource("FileTLV.txt").getFile());
    try{

        PrintWriter writer = new PrintWriter(new FileWriter(file));
        writer.print("I want to print a String");
        writer.flush();
        writer.close();

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

代码执行没有任何错误。

最佳答案

应用程序资源是只读的。您不能写信给他们。

如果您想覆盖应用程序资源,请将内容写入新位置(例如 temporary file 或用户主目录下的某个位置),并编写一些代码来在返回之前检查该文件您的内置应用程序资源。

此外,URL 的 getFile() 方法不会将 URL 转换为有效的文件名。它返回 URL 的路径和查询部分,所有百分比转义都完好无损,因此,如果您从完整路径包含 URL 中不允许的任何字符的目录或 .jar 运行,则结果将不可用。应避免该方法。 (方法名称来自于 java.net.URL 是 Java 1.0 中存在的一个类,当 Java 1.0 发布时,大多数 URL 实际上引用了物理文件。)

关于java - java写文本文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50744455/

相关文章:

java - JTree, 优化算法, Java

java - 如何在Java中使用PrintWriter和File类?

java - java.net.Socket 线程安全的方式是什么?

java - 使用 Buffered Writer 时,输入的文本未完全写入文件

Java - 不要用缓冲写入器覆盖

java - Spring 网络应用程序。一战多应用上下文

java - WindowLIstener - token 后应有标识符

javascript - Azure Web应用程序在引用不存在的路径时抛出错误

java - ByteArrayOutputStream 到 PrintWriter (Java Servlet)

java - 关闭嵌套流