将文件写入Eclipse源代码中的“resources”文件夹中

时间:2015-05-07 15:55:55

标签: java eclipse

我有以下代码在文件上写入一个字符串(相对路径加载):

void writeFile(String string){
        try {
            //ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            ClassLoader classLoader = getClass().getClassLoader();
            File newFile = new File(classLoader.getResource("conf/passwords.txt").getFile());

            //Path of "passwords.txt" where it writes the info
            System.out.println("ABSOLUTE PATH: " +newFile.getAbsolutePath());

            FileWriter flux = new FileWriter(newFile);
            BufferedWriter writer = new BufferedWriter (flux);
            writer.write(string);

            writer.close();
        } catch (IOException e) {
            System.out.println("ERROR on file writing.\n" +e.getMessage());
            e.printStackTrace();
        }
    }

它可以工作,但字符串不会写在我位于项目路径上的原始文件中,如下所示:src / conf / passwords.txt

而不是这个,字符串保存在以下路径中:C:\ Users \ becario01 \ workspace.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ searchLef \ WEB-INF \ classes \ CONF \ password.txt的

我想在原始文件上写下字符串,以便在我工作时工作时轻松显示。

我会非常感谢任何有用的回复。

问候。

1 个答案:

答案 0 :(得分:0)

总而言之,看起来您在Eclipse WST下运行Tomcat,您的webapp在某个时刻写出了一个文件,并且您希望该文件出现在Eclipse项目源代码树中,您可以在其中轻松地重新加载/查看它。在这种情况下,正如您所看到的,使用类加载器获取文件的位置将导致它出现在webapp部署的运行时中,而不是出现在Eclipse项目源中。

您要做的是以某种方式将Eclipse项目位置传递给您的webapp,然后使用该绝对路径打开您的File。有很多方法可以做到这一点 - 一个简单的方法是更改​​Eclipse Tomcat启动以添加JVM属性,例如: -Declipse.project.path=${workspace_loc}/searchLef,然后读取该系统属性并将其用作文件的基本路径,添加相对路径src/conf/passwords.txt。手动刷新项目后,该文件将显示在源树中。