【发布时间】:2016-07-21 17:44:34
【问题描述】:
我一直在开发一个有趣的小程序,现在我注意到当我运行它并尝试加载数据时,它会说“文件名、目录名或卷标语法不正确”但是文件的位置完全一样
@SuppressWarnings("resource")
public static void loadData(String filename) {
int accounts = 0;
File f;
try {
FileInputStream is = new FileInputStream("./Clients/accountstorage.MKREAD");
ObjectInputStream ois = new ObjectInputStream(is);
String lineSep = System.getProperty("line.separator");
String nextLine = "";
BufferedReader br = new BufferedReader(new FileReader("./Clients/" + "accountstorage.MKREAD"));
while((nextLine = br.readLine()) != null) {
f = new File((String) ois.readObject());
System.out.println(f.isDirectory() + " " + f.isFile() + " " + f.exists());
System.out.println(f.getAbsolutePath());
String path = f.getAbsolutePath();
is = new FileInputStream(path.replace("\\.", "") + "/" + filename + ".ACC");
ois = new ObjectInputStream(is);
double bal = ois.readDouble();
AccountState state = (AccountState) ois.readObject();
String name = (String) ois.readObject();
String lastname = (String) ois.readObject();
int id = ois.readInt();
Account accounte = new Account(id, name, lastname, bal, state);
getStorage().addAccount(accounte);
System.out.println("LOADED files");
ois.close();
is.close();
}
} catch(Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
Alert("NOTE", e.getMessage());
}
}
这会导致以下结果:
java.io.FileNotFoundException C:\Users\lucas\workspace\Dinges\Clients\Ouwens\Lucas
\BalanceInfo.ACC (The filename, directory name, or volume label syntax is incorrect)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at dinges.Account.loadData(Account.java:158)
at dinges.Main.main(Main.java:14)
但是,当我在 Windows 栏中搜索它时 C:\Users\lucas\workspace\Dinges\Clients\Ouwens\Lucas
它出现了,BalanceInfo.ACC 在那里
但是当我用程序尝试它时它没有找到它,可能是什么问题?里面可能有无效字符吗?
【问题讨论】:
标签: java binaryfiles java-io