[英]Java: Trying to read text file imported in different package of the same project using BufferedReader? Getting no such file or directory error?
我試圖從我的項目中的文本文件中提取數據,但在不同的包下。 這是項目的布局:項目布局
當我使用路徑時,它會返回一個錯誤,但是當我通過位置調用它時,它可以正常工作。 這是在 Eclipse 上。
這是我收到的錯誤消息。 錯誤
package park.FILEMOD;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileModifier {
public static void main(String[] args) throws IOException{
FileReader in = new FileReader("/park_mp1/src/park/DATA/Data1.txt");
BufferedReader br = new BufferedReader(in);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
in.close();
}
}
簡單的方法:
-- 在 Eclipse 中,我不得不將行更改為:
FileReader in = new FileReader("src/park/DATA/Data1.txt");
為什么這有效? 因為 IDE 接受從根開始的完整路徑,例如“ /Users/xyz/abc/park_mp1/DATA/Data1.txt ”,或者為了程序員的易用性,相對路徑。 每個 IDE 都可以定義它希望如何讓您的生活更輕松。 某些 IDE 也可以接受您編寫的內容。 他們所做的是在后面,他們只是用完整路徑替換它。
它在哪里不起作用? 轉到終端,並使用終端進行操作。 執行javac FileModifier.java
,然后是java FileModifier
使用適用於 Eclipse 的同一行:
FileReader in = new FileReader("src/park/DATA/Data1.txt");
現在,這不起作用,與您之前遇到的錯誤相同。 所以,最后, FileReader 只需要 Data1.txt 文件(在使用終端時,您將FileReader in = new FileReader("../DATA/Data1.txt");
使用FileReader in = new FileReader("../DATA/Data1.txt");
,您只需要為其提供一個到達那里的路徑。現在對於日食,它說像“ src -> park -> ... ”一樣去,終端要求像“ .. -> DATA -> ... ”
為什么? 因為終端知道“../”意味着去一個目錄。 Eclipse 可以實現同樣的功能,但由於某些需要進一步研究的原因,它無法實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.