[英]How to save a csv file in JFileChooser ?
嗨我无法保存csv文件。我甚至没有在write命令中出错。我使用过FileChooser。 任何人都可以解释使用Approve选项,因为我是新手。
if(e.getActionCommand()=="SaveTweet")
{
JFileChooser savePlaylistDialog = new JFileChooser();
savePlaylistDialog.setSelectedFile(new File( ".csv"));
int status = savePlaylistDialog.showSaveDialog(savePlaylistDialog);
try {
if (status == JFileChooser.APPROVE_OPTION) {
File savePlaylist = savePlaylistDialog.getSelectedFile();
ICsvListWriter csvWriter = null;
try {
TwitterProject obj=new TwitterProject();
String [][] tweet=obj.generateBottweet(username,interval,Btweet,no);
csvWriter = new CsvListWriter(new FileWriter("savePlaylist"),
CsvPreference.STANDARD_PREFERENCE);
for (int i = 0; i < tweet.length; i++) {
csvWriter.write(tweet[i]);
}
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
System.out.println("closing file");
csvWriter.close();
} catch (IOException e1) {
}
}
} else if (status == JFileChooser.CANCEL_OPTION) {
// User has pressed cancel button
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "File could not be written, try again.");
}
}
}
跳出来的两件事......
首先,比较String
Object引用而不是内容...
if(e.getActionCommand()=="SaveTweet")
很少会是真的,因为对象引用很可能永远不会相等,相反,你应该尝试使用类似的东西......
if("SaveTweet".equals(e.getActionCommand()))
这将比较两个String
的内容,但也会防止可能的NullPointerException
...
其次,您忽略了用户选择的File
,例如,您获得了用户使用的文件的引用...
File savePlaylist = savePlaylistDialog.getSelectedFile();
但是你创建了一个只使用String
值的FileWriter
......
csvWriter = new CsvListWriter(new FileWriter("savePlaylist"));
相反,应该尝试使用像......
csvWriter = new CsvListWriter(new FileWriter(savePlaylist));
哪个会将内容写入用户选择的文件...
ps-我也会放弃......
savePlaylistDialog.setSelectedFile(new File( ".csv"));
因为它实际上没有意义,我怀疑会有一个名为.csv
...或更多的文件,这是非常不可能的......
要比较java中的String对象,请使用.equals()方法而不是“==”运算符
更改
if(e.getActionCommand()=="SaveTweet")
至
if("SaveTweet".equals(e.getActionCommand()))
如果你想忽略这种情况,请使用如下代码
if("SaveTweet".equalsIgnoreCase(e.getActionCommand()))
你也测试了写作方法吗? 您使用哪种csvwriter实现? 在某些情况下(com.csvwriter),您需要在close()之前调用flush()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.