我有一个要求,我必须保存一个使用我的java代码生成的文件,但是当我想要保存它时,我想让用户决定他们想要保存它的位置。就像下载选项一样我们从internet下载文件。我尝试使用JFileChooser
。但它不能按照我希望的方式工作。有人可以帮忙。
我正在创建像
try{
writer= new PrintWriter("F://map.txt", "UTF-8");
}catch(Exception e){
e.printStackTrace();
}
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Specify a file to save");
JFrame parentFrame = new JFrame();
int userSelection = fileChooser.showSaveDialog(parentFrame);
if (userSelection == JFileChooser.APPROVE_OPTION) {
File fileToSave = fileChooser.getSelectedFile();
System.out.println("Save as file: " + fileToSave.getAbsolutePath());
}
答案 0 :(得分:1)
写入文件
请注意,如果该文件存在,则会覆盖该文件,如果存在,将不会自动提示您输入sh * t 。你必须自己检查它是否存在。
byte dataToWrite[] = // source
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(dataToWrite);
out.close();
在你的情况下,这可能会读作
if (userSelection == JFileChooser.APPROVE_OPTION) {
File fileToSave = fileChooser.getSelectedFile();
System.out.println("Save as file: " + fileToSave.getAbsolutePath());
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream(source);
out = new FileOutputStream(fileToSave.getPath());
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
}
finally {
if (in != null) in.close();
if (out != null) out.close();
}
}
请注意,这是未经测试的代码,我对这些内容没有真正的例程。你应该谷歌“java写文件”或类似的东西,如果这被证明是错误的代码:)