2013-03-04 150 views
-1
public class Demo 
{ 
    public static void main(String[] args) 
    { 
     PrintWriter outputStream= null; 
     try 
     { 
      outputStream = new PrintWriter (new BufferedWriter(new PrintWriter("text.txt"))); 
     } 
     catch(FileNotFoundException e) 
     { 
      System.out.println("Error"); 
      System.exit(0); 
     } 
     finally { 
       if (outputStream!= null) 
        outputStream.close(); 
     } 


     outputStream.println("Hahahahaha"); 



    } 
} 

所以我給了這個示例代碼,但奇怪的是它根本不起作用,因爲當我打開文本文件。它完全空白。那可能怎麼樣?是因爲output.close?我評論了這一部分,但它仍然不起作用。輸出流不打印任何東西

+0

'outputStream'聲明在哪裏?你的意思是'輸出'?另外,如果關閉它,則無法再寫入。 – 2013-03-04 19:24:50

+0

是啊,我一直在想這件事...它沒有任何意義,但爲什麼有人會給我這個作爲演示代碼? – 2013-03-04 19:29:28

回答

0

爲什麼使用:

的OutputStream =新的PrintWriter(新的BufferedWriter(新的PrintWriter( 「的text.txt」)));

爲什麼不直接使用:

爲PrintWriter的OutputStream =的新PrintWriter( 「的text.txt」);

+0

我不知道,這是一個示例代碼。我沒有寫。 – 2013-03-04 19:28:45

+1

我認爲這是一個糟糕的例子。我確信有很多關於如何寫入文件的Java教程!也許你可以檢查一下: http://www.roseindia.net/java/beginners/java-write-to-file.shtml – SamiHuutoniemi 2013-03-04 19:38:20

0

寫入之前關閉您要關閉outputStream

public class Demo 
{ 
    public static void main(String[] args) 
    { 
     PrintWriter outputStream = null; 
     try 
     { 
      outputStream = new PrintWriter (new BufferedWriter(new PrintWriter("text.txt"))); 
     outputStream.println("Hahahahaha"); 
     } 
     catch(FileNotFoundException e) 
     { 
      System.out.println("Error"); 
      System.exit(0); 
     } 
     finally { 
       if (outputStream != null) 
        outputStream.close(); 
     } 
    } 
} 
0

之前寫下您的println語句,。

請注意,finally總是在try塊退出時執行。 因此,您必須在退出try區塊之前寫入outputStream

關閉它,你會看到你輸入的文本。

try 
{ 
    outputStream = new PrintWriter (new BufferedWriter(new PrintWriter("text.txt"))); 
    outputStream.println("Hahahahaha"); 
} 
catch(FileNotFoundException e) 
{ 
    System.out.println("Error"); 
    System.exit(0); 
} 
finally { 
    if(outputStream != null) 
     outputStream.close(); 
}