首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存文件不会保存文件

保存文件不会保存文件
EN

Stack Overflow用户
提问于 2013-04-21 04:39:23
回答 2查看 108关注 0票数 1

我正在创建一个将错误日志写入文件的程序,但是当我请求保存该文件时,什么也没有发生(甚至连异常都没有)。我做错了什么?

“保存”按钮actionListener:

代码语言:javascript
复制
public void actionPerformed(ActionEvent arg0) {
    String savePath = getSavePath();

    try {
        saveFile(savePath);
    } catch (IOException e) {
        e.printStackTrace();
    }

}

和三种文件方法:

代码语言:javascript
复制
private String getSavePath() {
    JFileChooser fc = new JFileChooser();
    fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

    fc.showOpenDialog(this);

    return fc.getSelectedFile().getAbsolutePath();

}

private void saveFile(String path) throws IOException {
    File outFile = createFile(path);

    FileWriter out = null;

    out = new FileWriter(outFile);

    out.write("Hey");

    out.close();

}

private File createFile(String path) {
    String fileName = getLogFileName(path);
    while (new File(fileName).exists()) {
        fileCounter++;
        fileName = getLogFileName(path);

    }

    File outFile = new File(fileName);
    try {
        outFile.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();

    }

    return outFile;

}

private String getLogFileName(String path) {
    return "enchantcalc_err_log_" + fileCounter + ".txt";
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-21 04:55:47

您的getLogFileName(...)函数不会对您提供给它的路径做任何事情。因此,您尝试仅将文件写入enchantcalc_err_log_#.txt (没有实际路径)。试着这样做:

代码语言:javascript
复制
private String getLogFileName(String path) {
    return path + "enchantcalc_err_log_" + fileCounter + ".txt";
}
票数 3
EN

Stack Overflow用户

发布于 2013-04-21 05:58:14

您可能只是找不到该文件。

saveFile的末尾,尝试这样做: After

代码语言:javascript
复制
out.close();

像这样画一条线:

代码语言:javascript
复制
out.close();
System.out.println("File saved to: "+outFile.getAbsolutePath());

然后,您将获得保存它的神秘路径。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16124947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档