如何使用绝对路径中的变量在Java中保存文件?

时间:2013-06-02 19:13:20

标签: java netbeans

我的问题是在Netbeans中保存文档。我在Netbeans中使用Java创建了一个程序。首先注册(在点击注册按钮上创建一个新用户地图,其中包含用户名),然后使用您的用户名和密码登录。登录后,程序将显示一个新窗口,您可以在其中创建文档。您可以在TextArea中编写文本。然后,当您完成编写文本后,单击“保存”按钮,您编写的文本将保存在以您在jTextField中给出的文本命名的文档中。所以对于每个不同的登录,绝对路径都会改变

这是我在提交按钮中的代码:

//ccc is the name of user map
String ccc = LogIn.uporabnik1;
try{
    FileWriter writer = new FileWriter("C:\\Users\\ALEKS\\Documents\\NetBeansProjects\\EasyEdit\\"+ccc+"\\"+FileName+".txt");
    BufferedWriter bw = new BufferedWriter (writer);
    jTextArea1.write(bw);
    bw.close();
    jTextArea1.setText("");
    jTextArea1.requestFocus();
    writer.close();
}
catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
}

1 个答案:

答案 0 :(得分:2)

看起来你的路径中有一个额外空格的拼写错误。

请注意,作为替代方案,如果您使用Java 7+,您还可以使用Paths实用程序类生成路径,而无需处理特定于操作系统的分隔符(\\/):< / p>

Path path = Paths.get("C:/Users/ALEKS/Documents/NetBeansProjects/EasyEdit/" 
                     + ccc + "/" + FileName + ".txt");

并将字符串写入文件:

String text = jTextArea1.getText();
Files.write(path, text.getBytes("UTF-8"));

这使您的代码更短,您不必手动创建和关闭流。

最后,对于长时间操作,您不应使用GUI线程,而应使用后台线程,否则应用程序将在保存操作正在进行时无响应。