第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試創(chuàng)建新文件會引發(fā) FileNotFoundException 但文件存在于同一個包中

嘗試創(chuàng)建新文件會引發(fā) FileNotFoundException 但文件存在于同一個包中

狐的傳說 2021-09-29 16:24:35
我在與其他所有文件相同的路徑中有一個 csv 文件?,F(xiàn)在,當我嘗試創(chuàng)建一個 File 對象時:public void getMenu() {    File fileMenu = new File("FastFoodMenu.csv");    try {        Scanner inputStream = new Scanner(fileMenu);        while (inputStream.hasNext()) {            String data = inputStream.next();            System.out.println(data);        }    } catch (FileNotFoundException ex) {        Logger.getLogger(FileHandler.class.getName()).log(Level.SEVERE, null, ex);    }}它拋出一個FileNotFoundException.項目中所有文件的絕對路徑為:C:\Users\kenyo\Documents\NetBeansProjects\OrderFastFood\src\fastfoodorderingsystem我也檢查了幾次這個名字。fileMenu.exists()返回假。
查看完整描述

2 回答

?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

首先,在您的根/工作目錄(在您的情況下是包含您的項目的文件夾)中,創(chuàng)建一個名為“menus”的文件夾,您可以在此處存儲所有菜單(以便您可以玩多文件輸入)。


其次,將您的 FastFoodMenu.csv 文件移動到該菜單文件夾。該FastFoodMenu.csv相對路徑現(xiàn)在應(yīng)該是這樣的:OrderFastFood\menus\FastFoodMenu.csv。


第三,從系統(tǒng)屬性中獲取您的工作目錄。這是您的程序在其中運行的文件夾。然后,獲取對菜單文件夾的引用(文件對象)。


最后,獲取對菜單文件夾中相關(guān)文件的引用。當您進行多文件閱讀(在某些時候,多文件夾閱讀)時,您會希望將菜單文件夾中的文件作為列表獲取,這就是為什么我說只獲取菜單文件夾,因為它是自己的引用(或者只是獲取沒有對父級又名“\menus\”的獨立引用的文件)。


所以你的代碼應(yīng)該是這樣的:


public void getMenu() {

    final File workingDir = File(System.getProperty("user.dir"));

    final File menusDir = File(workingDir, "menus");

    final File fastFoodMenu = File(menusDir, "FastFoodMenu.csv");


    try {

        final FileInputStream fis = new FileInputStream(fastFoodMenu);

        final BufferedInputStream bs = new BufferedInputStream(fis);

        while((l = bs.readLine()) != null) {

            System.out.println(l);

        }

    } catch(FileNotFoundException e) {

        System.out.println(e.getMessage());

        e.printStackTrace()

    }

}

這都是偽代碼,但這至少應(yīng)該讓你開始。確保使用 BufferedInputStream 以提高效率,并且在讀取文件時,始終將它們傳遞到 FileInputStream 中。這比使用 Scanner 類要好得多。我還應(yīng)該提到,在創(chuàng)建 File 對象時,您實際上并不是在創(chuàng)建文件。您正在做的是創(chuàng)建一個對象,為其提供您希望它擁有的數(shù)據(jù)(例如它是否是一個文件夾,如果是,您希望它擁有哪些子文件/文件夾,它是否受保護)與否,隱藏與否等),然后實際告訴系統(tǒng)用其他所有內(nèi)容創(chuàng)建文件。


查看完整回答
反對 回復(fù) 2021-09-29
?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

您的 csv 文件可能位于錯誤的位置。您只是指定文件名,這是一個相對路徑。

相對路徑始終針對應(yīng)用程序的工作目錄進行解析,而不是針對源文件所在的目錄。

要解決此問題,您可以

  • 將文件移動到真正的工作目錄。

  • 使用絕對路徑(不推薦?。?/p>

  • 將數(shù)據(jù)文件的文件夾指定為程序參數(shù)或在配置文件中(在您的工作目錄中)

  • 將文件放在應(yīng)用程序的類路徑中,并通過 classloader 從那里加載它們。請注意,類路徑中的文件通常與應(yīng)用程序打包在一起,因此用戶不易修改,因此如果用戶必須更改文件,則此解決方案不起作用。


查看完整回答
反對 回復(fù) 2021-09-29
  • 2 回答
  • 0 關(guān)注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號