【已解決】想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 [論壇 - Ubuntu 程式設計]
正在瀏覽:
1 名遊客
【已解決】想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員四級
![]() ![]() 註冊日期:
2010/11/7 0:52 所屬群組:
已註冊使用者 等級: 19
HP : 0 / 464
![]() |
以下是一個Java程式問題, 跟檔案管理有關import java.io.*;
class app14_1 { public static void main(String args[])throws IOException { char data[]=new char[128]; FileReader fr=new FileReader("/usrs/kuuga/Java/test.txt"); int num=fr.read(data); String str=new String(data, 0, num); System.out.println("Characters read= "+num); System.out.println(str); fr.close(); } } 而輸出結果竟然是這樣: Exception in thread "main" java.io.FileNotFoundException: /usrs/kuuga/Java/test.txt (沒有此一檔案或目錄) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:146) at java.io.FileInputStream.<init>(FileInputStream.java:101) at java.io.FileReader.<init>(FileReader.java:58) at app14_1.main(app14_1.java:7) 當然, 這程式我是看洪維恩先生所著的Java2學習一書, 其中有一個語句FileReader fr=new FileReader("/usrs/kuuga/Java/test.txt");原意是用於MS-Windows才可執行, 但我現在所用的是Ubuntu, 那這個語句我應該如何去改, 才可執行呢?
2014/12/21 12:46
|
||||||||||
![]() |
回覆: 想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
先執行下面的指令,確定是否有這個檔案
$ ls /usrs/kuuga/Java/test.txt -l 一般的狀況下。使用者的家目錄應該在「/home」這個資料夾。 所以你的狀況有可能是「/home/kuuga/Java/test.txt」才對。 你可以執行下面的指令,了解你的家目錄所在路徑。 $ echo $HOME 或是 $ cd ~/ $ pwd ## 更多參考 * 鳥哥的 Linux 私房菜 / 第七章、Linux 檔案與目錄管理 * $ man pwd Dark.Kiva 寫到:
2014/12/21 12:52
|
||||||||||
![]() |
回覆: 想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員四級
![]() ![]() 註冊日期:
2010/11/7 0:52 所屬群組:
已註冊使用者 等級: 19
HP : 0 / 464
![]() |
我嘗試了 ls /usrs/kuuga/Java/test.txt -l又或者 ls /home/kuuga/Java/test.txt -l, 其結果顯示出:
ls: 無法存取 /home/kuuga/Java/test.txt: 沒有此一檔案或目錄 但當我直接打開有關的資料夾時, 該檔案test.txt反而存在, 那我應該怎麼辦呢?
2014/12/21 13:15
|
||||||||||
![]() |
回覆: 想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員四級
![]() ![]() 註冊日期:
2010/11/7 0:52 所屬群組:
已註冊使用者 等級: 19
HP : 0 / 464
![]() |
此外, 我再用Touch這個指令時(用的是Touch<檔案名稱>時, 就找不到有關test.txt, 那是不是我其實是根本沒有建立有關檔案而找不到test.txt檔案呢?
2014/12/21 13:29
|
||||||||||
![]() |
回覆: 想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
Dark.Kiva 寫到: 你用什麼打開?你先確定哪個路徑是否真的是「/home/kuuga/Java/test.txt」。 另外你執行 $ echo $Home 或是 $ cd ~/ $ pwd 的結果是什麼?
2014/12/21 13:48
|
||||||||||
![]() |
回覆: 想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
當你執行下面的指令
$ touch /home/kuuga/Java/test.txt 若沒有「/home/kuuga/Java/test.txt」這個檔案存在,就會產生一個空的檔案「/home/kuuga/Java/test.txt」。 但是若你這個資料夾「/home/kuuga/Java/」一開始就不存在。 執行上面的指令,就會出現下面的提示訊息。 touch: cannot touch ‘/home/kuuga/Java/test.txt’: No such file or directory 你可以執行下面的指令產生「/home/kuuga/Java/」這個資料夾 $ mkdir /home/kuuga/Java/ -p 或 $mkdir ~/Java -p 假設你的家目錄是「/home/kuuga」 ## 更多參考 * $ man mkdir * $ man touch * $ man ls 另外要注意的,在Unix系統,路徑(檔名或資料夾),大小寫有差。 Dark.Kiva 寫到:
2014/12/21 13:58
|
||||||||||
![]() |
回覆: 想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
你這段程式碼,我編譯過,也執行過,是正常的。
當然我改過那個路徑 將「/usrs/kuuga/Java/test.txt」 改成「/tmp/test.txt」。 $ echo test > /tmp/test.txt 也確定那個檔案是存在的 $ ls /tmp/test.txt -l 所以你要確認的,應該是你要測試的檔案「/usrs/kuuga/Java/test.txt」是否存在。 我上面有提到,理論上應該會是在「/home/kuuga/Java/test.txt」 。 一般不會有「/usrs」這個資料夾,除非你自己建立的。 但應該會有這個資料夾「/usr」。 報告完畢 ![]() Dark.Kiva 寫到:
2014/12/21 17:45
|
||||||||||
![]() |
回覆: 想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
管理員
![]() ![]() 註冊日期:
2011/3/11 6:32 所屬群組:
討論區管理群 等級: 44
HP : 216 / 1084
![]() |
Dark.Kiva 寫到: 對方系統內的路徑除非是全 GNU/Linux 系統通用(比方說 /tmp/test.txt )或是於先前的說明中有要求自己建立否則的話都要自行代換(substitute)成自己環境適用且存取得到的路徑 於此例很明顯: * usrs -> 使用者們(users) * kuuga -> 執行程式的使用者帳號主目錄(kuuga 使用者的檔案) * Java -> 因為這是 Java 教材的檔案 * test -> 測試用檔案 因此於您的環境下合理的代換方式應為改為 "/home/〈您的家目錄目錄〉/Java/test.txt" (或任何您覺得更適合放 test.txt 的路徑),先前不存在的母層(Java/)目錄要先建好、如果是檔案讀取操作的話 test.txt 檔案也要先建好(寫入檔案的話不一定,看 API 怎麼處理這個問題),就醬。
2014/12/21 19:17
|
||||||||||
本篇發表文章以「創用CC BY 3.0 或更新之台灣地區版本」授權條款釋出,如何使用敬請參考
Creative Commons — 姓名標示 3.0 台灣 — CC BY 3.0 TW http://creativecommons.org/licenses/by/3.0/tw/ 「你不懂的東西就不要亂講,被懂得人看破手腳就算了,騙不懂的人誤導別人,還要別人把你當成大師,這就真的是說不過去了。」 by Allen Own 出處 http://www.plurk.com/p/i4uogm 自由知識創作平台介紹 https://docs.google.com/document/d/1MGG6lW_0qCgH4U785R-IwSc_INdoBGej1l-JxiA4gPE 如何建立新的自由知識創作平台文件 https://docs.google.com/document/d/11NdzOW2lGYksfyQIcPMPye5tlmj1J0QTkgPTmQvIvKA |
|||||||||||
![]() |
回覆: 想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員四級
![]() ![]() 註冊日期:
2010/11/7 0:52 所屬群組:
已註冊使用者 等級: 19
HP : 0 / 464
![]() |
那如果我將這個指令:
FileReader fr=new FileReader("/usrs/kuuga/Java/test.txt"); 改為 FileReader fr=new FileReader("test.txt"); 在Linux來說不知道可不可以解決問題呢?
2014/12/22 13:11
|
||||||||||
![]() |
回覆: 想請教一下如果在Ubuntu情況之下Java檔案管理如何解決 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
Orz..
不太懂你想要得到什麼解答? 你就嘗試修改一下你的原始碼? 然後執行下面的指令 $ echo test > test.txt $ javac test.java $ java app14_1 就會得到答案了 應該花不了你多少時間。 而且也不會讓你的系統爆炸,或是電腦起火。 就勇敢的去「試誤學習」吧 ![]() 鳥哥的 Linux 私房菜 / 第七章、Linux 檔案與目錄管理 / 1.1 相對路徑與絕對路徑 Dark.Kiva 寫到:
2014/12/22 14:10
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.