gpt4 book ai didi

java - 这个文件阅读器(循环)有什么问题?

转载 作者:行者123 更新时间:2023-12-01 14:08:44 25 4
gpt4 key购买 nike

我编写了一个程序,提示用户选择特定目录。完成后,程序应选择该文件夹中的每个文件,然后对这些单独的文件执行其他代码(与此问题无关)。

我的问题是文件不断陷入 try/catch IO 异常中,我不明白为什么。

下面是我的文件选择器代码和输出。

public class checksumGUI {

private checksumFinder cf = new checksumFinder();
private static int returnVal1;
private static int returnVal2;

public void askDirectory() throws FileNotFoundException, UnsupportedEncodingException, IOException {

JFileChooser inFileName = new JFileChooser(new File("C:\\Documents and Settings\\lucey01\\Desktop\\Projects\\C0048817\\KOI\\C0048817_PCF_Front"));
inFileName.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

Component parent = null;

do {
returnVal1 = inFileName.showOpenDialog(parent);
if (returnVal1 == JFileChooser.CANCEL_OPTION) {
returnVal2 = JOptionPane.showConfirmDialog(null, "Select YES to cancel. Select NO to restart",
"Are you sure?", JOptionPane.YES_NO_OPTION);
if (returnVal2 == JOptionPane.YES_OPTION) {
System.exit(returnVal2);
} else {
checksumGUI.this.askDirectory();
}
}
} while (returnVal1 == JOptionPane.CANCEL_OPTION);


File folderFile = inFileName.getSelectedFile();
File[] listOfFiles = folderFile.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
File file = listOfFiles[i];
if (file.isFile() && file.getName().endsWith(".pcf")) {
cf.HexFinder(folderFile, null, null, null);
}else {
System.out.println("Incorrect filetype:\n" + file.getName() + "\n");
}
}
}
}

输出:

run:
IO Exception: Could not read file!

Incorrect filetype:
TSG_C7D4_KOI_BT_MAX_EOL.pcf.xml

IO Exception: Could not read file!

Incorrect filetype:
TSG_C7D4_KOI_BT_MAX_PLUS_EOL.pcf.xml

IO Exception: Could not read file!

BUILD SUCCESSFUL (total time: 2 seconds)

不正确的文件类型输出是正确的(对于我正在测试的文件夹),但 IOExceptions 不是。我知道我的代码分别适用于每个文件。

编辑代码调用another class在 try/catch 中使用缓冲读取器。当此 BufferedReader 位于 try/catch 之外时,我收到以下错误:

run:
Exception in thread "main" java.io.FileNotFoundException: C:\Documents and Settings\lucey01\Desktop\Projects\C0048817\KOI\C0048817_PCF_Front (Access is denied)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileReader.<init>(FileReader.java:72)
at robertskostalproject.checksumFinder.HexFinder(checksumFinder.java:24)
at robertskostalproject.checksumGUI.askDirectory(checksumGUI.java:47)
at robertskostalproject.RobertsKostalProject.main(RobertsKostalProject.java:14)
Java Result: 1
BUILD SUCCESSFUL (total time: 2 seconds)

任何人都可以看到我哪里出了问题吗?一如既往,我们非常感谢任何帮助。

最佳答案

cf.HexFinder(folderFile, null, null, null);

应该阅读

cf.HexFinder(file, null, null, null);

关于java - 这个文件阅读器(循环)有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18701258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com