我的一类GUI有一个文件名变量。我想将它传递给另一个类,这样我就可以处理文件,而不必每次都对文件名进行硬编码。该程序编译良好,但我似乎无法正确运行。
public void run() {
WordsCounter2 fileName = new WordsCounter2();
essayName = fileName.getFileList();
File f = new File(essayName);
//other code
WordsCounter2是包含变量fileName的类,我从这个类中调用它并将其指定为文件名,但这不起作用。有人可以帮忙吗?
if (rVal == JFileChooser.APPROVE_OPTION) {
File[] selectedFile = fileChooser.getSelectedFiles();
fileList = "nothing";
if (selectedFile.length > 0)
fileList = selectedFile[0].getName();
for (int i = 1; i < selectedFile.length; i++) {
fileList += ", " + selectedFile[i].getName();
}
statusBar.setText("You chose " + fileList);
}
else {
statusBar.setText("You didn't choose a file.");
}
fileList不为空,因为我在GUI上有一个标签,列出了我选择的任何文件。
这是我的新编辑:现在异常发生在扫描仪的最后一行并抛出一个NPE。你能帮忙吗?
public void run() {
WordsCounter2 pathNamesList = new WordsCounter2();
essayName = pathNamesList.getPathNamesList();
essayTitle = new String[essayName.size()];
essayTitle = essayName.toArray(essayTitle);
for (int i = 0; i < essayTitle.length; i++) {
f = new File(essayTitle[i]);
}
try {
Scanner scanner = new Scanner(f);
答案 0 :(得分:0)
您的代码失败,因为File不接受逗号分隔的文件名,实际上,它需要一个文件路径来在上述路径中创建文件。见这里:https://docs.oracle.com/javase/7/docs/api/java/io/File.html
您必须在数组中获取完整路径并按如下方式放置文件创建语句:
File f;
for (int i=0; i<fileList.length; i++)
f = new File(fileList[i]);
其中fileList是一个包含路径名列表的String数组。
如果您尝试将某些内容写入这些文件,这应该会有所帮助:Trying to Write Multiple Files at Once - Java