2016-12-19 8 views
1

端末上のすべてのテキストをテキストファイルの出力として保存します。出力のためのSystem.out.printlnの代わりに使用される関数()は、このような端末出力(および入力)をJavaのファイルにコピーする方法

class OutSave 
{ 
    String output; 
    public static void main() 
    { 
     output=""; 
     print("Print this"); 
     print("And save this"); 
    } 
    public static print(String p) 
    { 
     output=output+"\n"+p; 
     System.out.println(p); 
    } 
} 

何かがあることができますが、私は、ユーザーから提供された入力のためにこれを把握することはできません。アドバンス

おかげ

答えて

0

ここでは、印刷対象のログファイルを書き込む方法の簡単な例を示します。

class OutSave 
{ 

    File output = new File("output.txt"); 

    public static void main() 
    { 
     print("Print this"); 
     print("And save this"); 
    } 

    public static print(String str) 
    { 
     System.out.println(str); 
     writeToFile(output, str); 
    } 

    public void writeToFile(File file, String str) { 
     BufferedWriter bw = new BufferedWriter(new FileWriter(file)); 
     bw.write(str); 
     bw.close(); 
    } 
} 

編集:ログのユーザー入力(int型)

Boolean running = true; 
    System.out.println("Enter a Number: "); 

    while (true) { 
     while (!sc.hasNextInt()) { 
      System.out.println("Try again, Enter a Number: "); //invalid entry 
      sc.nextLine(); 
     } 
     WriteToFile(output, Integer.toString(sc.nextInt())); 
    } 

あなたがハングします、あなたはこのように行われたときにループを終了するために実行しているブール値を変更、メソッドからこのコードを呼び出すことができますあなたが終了しないならば、入力ループの中のプログラム。これもスレッド化することをお勧めします。

+0

しかし、ユーザーによって与えられた入力はどうですか@Daedric –

+0

print( "Enter Number"); int n = sc.nextInt();.ターミナル出力 - 番号を入力します。 10.ファイル出力 - 番号を入力してください –

+0

ユーザ入力にはsystem.inを使用してください。 – Daedric

-1

リンクをチェックし、ファイルのライターを使用することができますに関係なく、これを行うのhttp://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html

+0

潜在的な解決策へのリンクはいつでも歓迎しますが、[リンクの前後にコンテキストを追加]してください(http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere -really-good-answers/8259#8259)、あなたの仲間のユーザーは、それが何であるか、なぜそこにあるのかを知るでしょう。ターゲットサイトに到達できない場合や、永続的にオフラインになる場合は、常に重要なリンクの最も関連性の高い部分を引用してください。外部サイトへのリンク以上になることは、[なぜ、どのように答えが削除されるのか]という理由が考えられます。 – mmushtaq

+1

@ Krim_0リンク404 –

1

通常の方法は、Javaプログラムの内部で何も必要とせず、任意のプログラムのために働きます。それは元々に書かれた言語コマンドラインから

、ほとんどのシェル(bashのは、Cシェル、MS-DOSなど)の中には、実行します。

$program > outfile.txt 

ここで、$programは実行可能ファイルの名前です。

これは一般にredirectionとして知られています。

+0

ですが、私はそれを自動的に@Paul Brinkleyにすることになっています –

+0

一般に、この自動化は簡単です。リダイレクトを伴うコマンドをシェルスクリプトに入れてください。もしあなたがこれをJavaプログラム自体の中で起こらせることを恣意的に要求されているとすれば、それはすでにそこにある 'System.out.print'呼び出しで何ができるかによって決まります。変更が可能な場合は、ロギングを実装する可能性があります。その場合は、log4jなどのロギングパッケージを探す必要があります。代わりに、 'System.setOut()'を使ってそれらのストリームを置き換えることができます。しかし、あなたがやっていることについてもっと多くの情報を提供する必要があります。 –

関連する問題