簡體   English   中英

Java:嘗試使用 BufferedReader 讀取在同一項目的不同包中導入的文本文件? 沒有這樣的文件或目錄錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM