Я работаю над небольшой небольшой программой для удовольствия, и теперь я заметил, что когда я запустить его и он пытается загрузить данные, которые он будет сказать: «имя файла, имени папки или синтаксис метки тома неправильно» Однако расположение файла точно такой жеПопытка загрузить данные из двоичного файла, приводит к FileNotFound, но файл находится там, если я ищу его в панели поиска Windows
@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)
Однако, когда я ищу его в своих окнах bar C:\Users\lucas\workspace\Dinges\Clients\Ouwens\Lucas
оно появляется, и BalanceInfo.ACC находится там
Но он не находит его, когда я пытаюсь его с программой, что может быть неправильно? Есть ли в нем возможный недопустимый символ?
Он по-прежнему дает ту же ошибку, infact теперь он ошибочно is = new FileInputStream (fullPath); –
@LucasOuwens: Я бы не ожидал, что вышеупомянутое изменение вашего кода заставило бы его работать. Вы задали вопрос «Есть ли в нем возможный недопустимый символ?», И мой ответ поможет вам это выяснить. Что напечатала строка, которую я добавил? –
хорошо! Ну, есть неизвестное пространство, которое не появляется в самом файле, поэтому я просто переписал метод –