java保存不了_在使用Java写入文件时,文件不能保存在文件夹中

什么即时通讯要做的只是让用户选择一个目录来保存文本文件,问题是即时通讯尝试选择一个文件夹即时通讯创建在我的桌面上,但是当我用JFileChooser选择文件夹,并让我的代码做工作它仍然保存在文件夹和桌面之外..为什么?有人可以请解释我做错了什么,所以我可能会学到一些东西..

public class TextFileSaver {

String filePath;//Used in the setPath and getPath methods

String filename = File.separator+"tmp"; //Used for the JFileChoosers directory

public TextFileSaver(){

//Get our file saver to the screen

JFileChooser fc = new JFileChooser(new File(filename));

fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); //Only able to select directiories

// Show open dialog; this method does not return until the dialog is closed

fc.showSaveDialog(null);

File selectedLocation = fc.getCurrentDirectory(); //Gets the selected Location

//Sets the path of the file so we can read from it.

setPath(selectedLocation.getAbsolutePath());

FileName();

try {

SaveFile(filePath);

}

catch (IOException ex) {

Logger.getLogger(TextFileSaver.class.getName()).log(Level.SEVERE, null, ex);

//Show a message dialog

JOptionPane.showMessageDialog(null, "The file could not be saved, Please try again.",

"Error", JOptionPane.ERROR_MESSAGE);

}

}

public void setPath(String Path){

filePath = Path;

}

public String getPath(){

return filePath;

}

private void FileName(){

String name = JOptionPane.showInputDialog

("What name do you want to give the file?");

//Temporary code bellow will change to StringBuilder here.

filePath = filePath + "/" + name + ".txt";

}

private void SaveFile(String Path) throws IOException{

System.out.println(Path);

//The outStream that we will use to write to the text file the user is creating.

PrintWriter outStream = new PrintWriter(new BufferedWriter(new FileWriter(Path)));

outStream.println("Test text!");

outStream.close();

}

}所有的方法都是通过构造函数来执行的。所以代码一步一步发生..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值