2015-11-19 102 views
-1

我是編碼方面的初學者。我在我的大學編程入門和算法課程。我的教授和我無法弄清楚如何解決這個問題。我正試圖從另一個文件輸出到一個文件。新文件已創建,但仍爲空。任何幫助或輸入將不勝感激!謝謝!Java:將輸出打印到文本文件

import java.util.Scanner; 
import java.io.PrintWriter; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
public class Part3 { 
public static void main(String[] args) throws IOException 
{ 
    int i = 0; 

    FileInputStream fileIn = null; 
    Scanner file = null; 
    double input = 0; 

    FileOutputStream fileOut = null; 
    PrintWriter file2 = null; 

    System.out.println("Opening file LabInput.txt."); 
    fileIn = new FileInputStream("LabInput.txt"); 
    file = new Scanner(fileIn); 

    fileOut = new FileOutputStream("LabOutput.txt"); 
    file2 = new PrintWriter(fileOut); 

    while (file.hasNext()) 
    { 
     input = file.nextDouble(); 
     file2.println("test"); 

      if(i % 3== 0) 
      { 
       file2.println(""); 
       i++; 
      } 
     file2.printf("%10.3f", input); 
    } 

    file2.println(""); 
    file2.println("Closing file LabInput.txt."); 
    fileIn.close(); 
    fileOut.close(); 

}} 
+0

嘗試'file2.close()'而不是'fileOut.close()'。當您關閉'PrintWriter'時,數據將被刷新到文件中。 – Titus

+0

只是一個快速的事情......你可以像'file = new Scanner(「LabOutput.txt」);'和'PrintWriter'一樣使用'file2 = new PrintWriter(new File(「LabOutput .txt「));' – 3kings

+1

@ 3kings'new Scanner(」LabOutput.txt「);'將創建Scanner,它將簡單地從該位置掃描字符串''LabOutput.txt」'不是文件。你可能是指'新的掃描儀(新文件(「LabOutput.txt」))''。甚至是'LabInput.txt'而不是'LabOutput.txt',因爲掃描儀應該用於讀取而不是寫入。 – Pshemo

回答

0

在程序結束時添加file2.close();OutputStreams通常寫入緩衝區而不是實際的目的地(這裏是文件)。該緩衝區滿時被刷新。爲確保將所有內容寫入文件,您必須致電close()