import java.io.*;
import java.util.Random;
import java.util.Scanner;
public class Exercise_12_15 {
//實體化File類的的物件,類的檔案名是Exercise12_15.txt。
private static File thefile = new File("j:/Exercise12_15.txt");
public static void main(String[] args) throws IOException {
myPrint();
}
private static void myScanner() throws FileNotFoundException {
//掃描Exercise12_15.txt檔案。把檔案每一行列印到控制臺。
try (Scanner readfromtxt = new Scanner(thefile)) {
while (readfromtxt.hasNextLine()) {
System.out.println(readfromtxt.nextLine());
}
}
}
private static void myPrint() throws FileNotFoundException {
//呼叫myScanner方法,如果沒有找到Exercise12_15.txt,則捕獲這個例外。
try {
myScanner();
System.out.println(thefile.getName() + "檔案已存在。");
} catch (FileNotFoundException ex) { // 沒有檔案的例外被捕獲。
Random myrnd = new Random(); // 實體化Random類的物件。
int[] rndInt = new int[15]; // 宣告陣列。
for (int i = 0; i < rndInt.length - 1; i++) { // 陣列元素賦值。
rndInt[i] = myrnd.nextInt(100);
}
//創建Exercise12_15.txt檔案,把陣列內容寫進去。
try (PrintWriter writetotxt = new PrintWriter(thefile)) {
for (int i = 0; i < rndInt.length - 1; i++) {
writetotxt.println(rndInt[i]);
}
}
myScanner();
}
}
}
uj5u.com熱心網友回復:
題目要求:撰寫一個程式,如果名為Exercise12_15.txt檔案不存在,則創建它。使用文本I/O將隨機產生的15個整數寫入檔案。從檔案中讀回資料。
uj5u.com熱心網友回復:
首先檔案存在不存在,File類就有api,沒必要用例外。其次,現在的例子的檔案結構簡單,加入檔案路徑有多層檔案夾,而且這些檔案夾也不存在,那么例子中的創建檔案的代碼根本就不行。
再次,題目只要求隨機生成15個亂數寫檔案,所以直接生成一個就寫入一次檔案就好,沒必要先保存到陣列里。
另外,盡量不要用static方法,除非是工具類或者只是單純地寫個簡單的sample,要學會用面向物件的思想來考慮問題。
uj5u.com熱心網友回復:
你好。這句不理解,用static只需要實體化File物件一次,然后這個類里任何方法隨便用,不然100個方法實體化File物件100次?
uj5u.com熱心網友回復:
現在不理解,以后再慢慢理解吧。面向物件不是說加了個class,什么都用static來寫代碼就完事了,這和面向程序有什么分別?就好像你說的,要生成100次,但如果要求每次的檔案名不一樣呢?你要寫100個class?還是1個class生成100個物件方便?uj5u.com熱心網友回復:
創建實體并不會有多少開銷,通常情況下這都不是性能優化的點。
即使你把File物件作為static,只是少創建一個物件,每次新打開一個檔案的開銷并不會減少。
靜態變數在類加載的時候會被加載到JVM的方法區,基本上加載后就一直占用這部分空間。
如果作為一個變數,每次使用后系統就會自動做垃圾回收了,不會浪費記憶體。
uj5u.com熱心網友回復:
精簡代碼最好是按功能來進行精簡,這樣后期開發可以直接參考uj5u.com熱心網友回復:
我發現一個問題,你的程式都把FileNotFoundException例外給拋棄了,萬一File沒有你處理例外沒效啊!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/152024.html
標籤:Java SE
上一篇:Jmeter原始碼運行NewDriver.java打開UI界面后報錯
下一篇:eclipse的相關問題
