2015-09-12 81 views
-2

如何使用線程寫入文件?每個文件應該是100行,每行長度爲100個字符。這項工作必須執行線程和I \ O。如何使用線程寫入文件?

我的代碼:

public class CustomThread extends Thread{ 
     private Thread t; 
     private String threadName; 

    CustomThread(String threadName){ 
     this.threadName = threadName; 
    } 

public void run() { 
if (t == null) 
     { 
     t = new Thread (this); 
     } 
     add(threadName); 
} 

public synchronized void add(String threadName){ 

     File f = new File(threadName + ".txt"); 

     if (!f.exists()) { 
      try { 
       f.createNewFile(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
       System.out.println("File does not exists!"); 
      } 
     } 

     FileWriter fw = null; 
     try { 
     fw = new FileWriter(f); 
     for (int i = 0; i < 100; i++) { 
      for (int j = 0; j < 100; j++) { 
       fw.write(threadName); 
       fw.write('\n'); 
      } 

     } 

     } catch (IOException e) { 
      e.printStackTrace(); 
      System.out.println("File does not exists!"); 
     } 
     } 
} 

我的代碼是正確的?我需要用100行和100個字符創建文件。字符必須取決於文件名。如果我創建一個名爲1的文件,並且填充名稱必須是1.謝謝。

+2

你有什麼問題嗎?如果你只是想知道它是否工作...然後測試它。 –

回答

1

根據您的要求,您的代碼看起來是正確的,即寫100行,每行包含100個字符。假設是,線程的名稱將是單個字符,因爲您正在將threadName寫入該文件。我有幾個結束建議來完成您的實施。他們自己測試它。如果您發現任何問題,請發表評論。

  1. 要讓每行有100個字符,您需要將new line個字符語句移動到外部循環。
  2. 一旦你的整理寫入所有的數據文件,做flush()close()文件,爲了保存它。
  3. 您正在使用threadName創建文件,您可能想要爲要創建的文件添加起始路徑位置。
  4. 顯然你錯過了main()方法。創建類的對象和start()的線程。
  5. 您無需創建單獨的Thread實例,run()方法將在單獨的線程中執行,因爲您正在擴展Thread類。