2014-12-19 38 views
0

我需要將這些System.out.printlns寫入文本文件,但我不知道如何發生這種情況,所以我需要一些高級的幫助。將System.Out.Println寫入文本文件

System.out.println("You have have entered "+EnteredNumbers+ " numbers!"); 
    System.out.println("You have have entered "+Positive+ " Positive numbers!"); 
    System.out.println("The Average of the Positive Numebers is "+AveragePositive+ "!"); 
    System.out.println("You have have entered "+Negative+ " Negative numbers!"); 
    System.out.println("The Sum of the Negative numbers is "+NegativeSum+ "!"); 

這裏是整個代碼:

import java.io.*; 

public class Nums { 
    public static void main(String args[]) 
    throws IOException 
    { 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    String str; 
    int EnteredNumbers = -1; 
    int Positive = 0; 
    int Negative = 0; 
    int NegativeSum = 0; 
    int PositiveSum = 0; 
    double AveragePositive = 0; 

    System.out.println("Enter '0' to quit."); 
    System.out.println("Enter Numbers: "); 
    try{ 
    do { 
     EnteredNumbers++; 
     str = br.readLine(); 
     int num = Integer.parseInt(str); 
     if (num>0) 
     { 
     Positive++; 
     PositiveSum+=num; 
     } 
     else if (num<0) 
     { 
     Negative++; 
     NegativeSum+=num; 
     } 
     } 
    while(!str.equals("0")); 
     AveragePositive = (double)PositiveSum/(double)Positive; 
     System.out.println("You have have entered "+EnteredNumbers+ " numbers!"); 
     System.out.println("You have have entered "+Positive+ " Positive numbers!"); 
     System.out.println("The Average of the Positive Numebers is "+AveragePositive+ "!"); 
     System.out.println("You have have entered "+Negative+ " Negative numbers!"); 
     System.out.println("The Sum of the Negative numbers is "+NegativeSum+ "!"); 

     } 
    catch (java.lang.NumberFormatException ex) 
    { 
     System.out.println("Invalid Format!"); 
    } 
} 
} 

我是初學者,我很想得到一些幫助!

+2

您是否意味着您需要使用'java Nums>文件運行程序.out'或者您需要寫入文件,或者您確實需要寫入System.out的任何內容,而不知道這是寫入文件? –

+0

我需要寫一個文件 –

+0

關於網上的教程;例如見[這裏](http://java7fs.wikia.com/wiki/Using_the_java.nio.file_API) – fge

回答

3

System.out是寫入標準輸出的PrintStream。您需要創建一個FileOutputStreamPrintStream(或更好FileWriterPrintWriter)裝飾它:

File file = new File("C:/file.txt"); 
FileWriter fw = new FileWriter(file); 
PrintWriter pw = new PrintWriter(fw); 
pw.println("Hello World"); 
pw.close(); 

另見:

+0

[請使用java.nio.file](http://java7fs.wikia.com/wiki/Why_File_sucks) ! – fge

+0

我試過,但看起來我做錯了什麼...你能調整我的代碼,所以我可以試試嗎? –

+0

@DanielaGocheva在代碼中用'pw.println'替換'System.out.println'中要寫入文件的行。 –

0

此爲2014年5 。所以有java.nio.file。

因此:

final List<String> list = new ArrayList<>(); 

list.add("first string here"); 
list.add("other string"); 
// etc etc 

然後:

final Path path = Paths.get("path/to/write/to"); 

Files.write(path, list, StandardCharsets.UTF_8, StandardOpenOption.CREATE); 

而且don't use File

0

你可以使用setOut()方法進行filewrite和System.out.println();在使用System.out.println()後調用setOut(),那麼方法sop將打印在文件上或者您在setOut()方法中輸出的方法

+0

setOut()方法更改默認的PrintStream對象。 – Kapil