日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java文件读取异常_关于Java:从文本文件读取会引发异常

發(fā)布時間:2025/3/20 java 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java文件读取异常_关于Java:从文本文件读取会引发异常 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

因此,我使用了DataInputStream,FileInputStream,BufferInputStream,FileReader,BufferedReader,Scanner,將其命名。 它們都拋出FileNOtFoundException或CorruptedStreamException。

例外

java.io.FileNotFoundException:java.io.FileReader@253498.data(系統(tǒng)找不到指定的文件)

會在文件讀取器使用文件名" Accounts.txt"初始化的行上引發(fā),這是我已經(jīng)初始化的文件,位于文件箱中,其中包含所需的文本。

import java.io.*;

import java.util.ArrayList;

/**

* Class to load account files

*/

public class AccountLoader {

/**

* Add an account file

* @param newAccount

*/

public static void addAcountFile(Account newAccount) {

try {

PrintWriter out = new PrintWriter(new File("Accounts.txt"));

out.print("" + newAccount.getOwner().getName());

System.out.println("saved account" + newAccount.getOwner().getName());

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

public static ArrayList loadAccountsList() throws EOFException, IOException, ClassNotFoundException{

ArrayList accounts = new ArrayList();

FileReader load = new FileReader("Accounts.txt");

String file = load.toString();

String[] accountsload = file.split("");

for (String string : accountsload){

accounts.add(loadAccount(string +".data"));

}

load.close();

return accounts;

}

public static void save(Account account) {

String filename = account.getOwner().getName() +".data" ;

if (filename != null) {

try {

FileOutputStream fos = new FileOutputStream(filename);

ObjectOutputStream out = new ObjectOutputStream(fos);

out.writeObject(account);

out.flush();

out.close();

}

catch (IOException e) { System.out.println(e); }

}

}

public static Account loadAccount(String filename) {

Account newAccount = null;

if (filename != null) {

try {

FileInputStream fis = new FileInputStream(filename);

ObjectInputStream in = new ObjectInputStream(fis);

newAccount = (Account)in.readObject();

in.close();

}

catch (Exception e) { System.out.println(e); }

}

return newAccount;

}

}

您是否正在使用命令行運行?

我99%的人確保您不會在正確的位置(用戶目錄)中查找文件,就像99%的人經(jīng)常問同樣的問題一樣(如果我每次都有四分之一...)。 通過運行以下行找到用戶目錄:System.out.println(System.getProperty("user.dir"));

@HovercraftFullOfEels如果我每次都對你有四分之一的話...

幾率! (據(jù)您估計,為1%)實際上位于與System.out.println(System.getProperty(" user.dir"))相同的文件夾中; 打印。 但這就是我不告訴你的錯。

您可能需要將文本文件放在"項目根目錄"文件夾(包含src和bin的文件夾)中,而不是在bin文件夾中。如果您是從Eclipse運行的,那肯定是您需要做的,因為從Eclipse運行的Java項目的上下文始終是該項目的Eclipse項目文件夾。

當(dāng)您要求Java按名稱打開文件而不提供路徑時,JVM將在其當(dāng)前工作目錄中查找文件。當(dāng)前的工作目錄會根據(jù)您運行程序的方式而變化,在這種情況下,看起來" bin"文件夾不是您的當(dāng)前工??作目錄。

實際上,它位于項目的根文件夾中。 我的錯。

如果使用命令行,請將文件放在運行Java命令的文件夾中,并在CLASSPATH中添加.為

set CLASSPATH=%CLASSPATH%;.

然后運行您的Java程序。

如果使用的是eclipse,請嘗試將文件放在項目的根文件夾中,或使用相對于根文件夾的相對路徑。

我正在使用eclipse,文件位于根文件夾中。

" root"文件夾是指項目文件夾,而不是" src"或" JavaSource"。 是否在項目文件夾(src文件夾的父文件夾)中?

是。 并且無論如何該文件夾都保存在此類的首位,因此工作目錄必須相同,對嗎?

Eclipse將工作目錄視為項目根文件夾,而不是存在" .class"文件的文件夾。 我有很多工作示例,其中將文件放在我的項目文件夾中,例如 Java文件位于" TestJava / JavaSource / com / test / concept /"文件夾中時," TestJava"正常運行,沒有任何問題。

@ user1253476-我有個主意。 嘗試創(chuàng)建文件,例如 output.txt使用FileWriter并檢查要創(chuàng)建的文件的位置。 我很確定,您用來讀取文件的文件會有所不同。

嘗試將文本文件移動到其他文件夾。 bin文件夾中的一個文件夾可能是正確的位置。

糟糕,我撒謊了。 將其從文件夾中移出文件夾。

總結(jié)

以上是生活随笔為你收集整理的java文件读取异常_关于Java:从文本文件读取会引发异常的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。