2011-02-26 116 views
0

我正在嘗試編寫一個簡單的方法將我的文檔保存到文件中(覆蓋此文件的任何以前的內容)。不幸的是,我的實現似乎不起作用。我在我的文檔上調用它,這是爲了所有意圖和目的,一個String數組。我想要做的是編寫我的數組的內容,爲數組中的每個值分別設置一行,第一行的位置爲[0],第二行爲[1]。我將如何去做這件事?使用Java寫入文件

這是我的執行至今:

public void save() 
    { 
     try 
     { 
     PrintWriter outputFile = 
      new PrintWriter(new BufferedWriter(new FileWriter(docName))); 
     int lineNo = 1; 

     while (lineNo != lineNo) // CHANGE THIS!!! 
     { outputFile.println(" ~ "); 
      lineNo++; 
     } 
     outputFile.flush(); 
     } 
     catch (Exception e) 
     { 
     System.out.println("Document: Touble writing to "+docName); 
     System.exit(1); 
     } 

}

+0

沒有任何反應,也沒有錯誤返回!這就是爲什麼我很困惑! :) – steveom 2011-02-26 18:22:04

+0

因爲它永遠不會進入while循環 - 'int lineNo = 1; while(lineNo!= lineNo)// always always FALSE' – Nishant 2011-02-26 18:23:57

+0

這是調試器很快顯示給你的東西。 – 2011-02-26 18:36:30

回答

0

遍歷數組的迭代器,並寫入當前元素。

String document[] = {"String1","String2","String3"}; 
    PrintWriter outputFile = 
     new PrintWriter(new BufferedWriter(new FileWriter(docName))); 
    int lineNo = 1; 

    for(int i = 0; i < document.length; i++) 
    { outputFile.println(document[i]); 
     lineNo++; 
    } 
+0

<3。完善。非常感謝。 – steveom 2011-02-26 18:24:42

1

如果a是一個字符串數組,

for (String s : a) 
    outputFile.println(s); 

將陣列行由行打印到outputFile

0
// myDoc is the "array of string" 
foreach (String line : myDoc) { 
    outputFile.println(line); 
} 
0

我可以寫更是這樣的:

import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.PrintStream; 

/** 
* FileDemo 
* @author Michael 
* @since 2/26/11 
*/ 
public class FileDemo 
{ 
    public static void main(String[] args) 
    { 
     try 
     { 
      FileDemo fd = new FileDemo(); 
      fd.save("out/test.txt", args); 
     } 
     catch (FileNotFoundException e) 
     { 
      e.printStackTrace(); 
     } 

    } 

    public void save(String filePath, String [] lines) throws FileNotFoundException 
    { 
     PrintStream ps = null; 

     try 
     { 
      ps = new PrintStream(new FileOutputStream(filePath)); 
      int lineNum = 1; 
      for (String line : lines) 
      { 
       ps.printf("%5d %s\n", lineNum++, line); 
      } 
     } 
     finally 
     { 
      close(ps); 
     } 
    } 

    public static void close(PrintStream ps) 
    { 
     if (ps != null) 
     { 
      ps.flush(); 
      ps.close(); 
     } 
    } 
} 

我沒有看到你的代碼的任何實際內容,所以我加了一些。我沒有看到帶有行號的文件非常有趣。如果你願意的話,你可以修改它以使它有所不同。