2012-04-24 27 views
1

私はテキストファイル全体を読んで、その全体の内容を単一の文字列に保存したいと思います。それから私は、コンソールウィンドウに文字列を印刷したいと思います。私はこれを試しました:テキストファイルを読み込んでコンソールウィンドウに出力するにはどうすればよいですか? Java

import java.util.Scanner; 
import java.io.*; 

public class WritingTextFiles{ 

    public static void main (String [] args) throws IOException{ 
     FileWriter fw= new FileWriter("testing.txt"); 
     Scanner in= new Scanner (System.in); 
     String testwords=in.nextLine(); 
     fw.write(testwords); 
     BufferedReader r = new BufferedReader(new FileReader("testing.txt")); 
     System.out.print(r); 
     fw.close(); 
    } 
} 

コンソールウィンドウに表示されるのは、[email protected]です。

誰も私のような初心者にこれを説明できますか?私は経験はほとんどありませんが、私は確かに学びたいと思っています。私はすべての提案に開放されています。前もって感謝します!

+0

BufferedReaderクラスのAPIの 'read()'メソッドと 'readLine()'メソッドを見てください:http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html –

+0

http://stackoverflow.com/questions/3886201/java-outputting-text-file-to-console – assylias

答えて

6

java.io.BufferedReader @ 18fb397がコンソールに印刷される理由は、バッファリングされたリーダーの参照を、印刷する文字列ではなく、printの引数として与えるためです。

BufferedReader r = new BufferedReader(new FileReader("testing.txt")); 
System.out.print(r); 

は次のようになります。私たちは、実際にファイルの行を読んで、一時的な変数に格納

BufferedReader r = new BufferedReader(new FileReader("testing.txt")); 
String s = "", line = null; 
while ((line = r.readLine()) != null) { 
    s += line; 
} 
System.out.print(s); 

お知らせ、我々はSにこの変数を追加します。それから、BufferedReaderではなくsを出力します。

最後に、ファイルを閉じるときにfw.close()を呼び出すのが賢明ですが、テストワードを書き込んだ後で直接呼び出す必要があります。これは、FileWriterが実際に文字列を書き込んだことを確認するためです。

+0

プログラムはコンパイルされません。 – user1299661

+0

もちろん、申し訳ありませんが、私はこのコードをテストせずに書いたのですが、私はこのコードを書いていませんでした。正しくコンパイルするために私の元の答えをeditted – Terraego

+0

私はありがとう!ファイルを読み込み、配列で読み込むことができる文字列以外の型にファイルを格納する方法はありますか?私は、ファイルの内容を取り出し、それを配列に整理し、ユーザーの入力をファイルのコンポーネントと比較するプログラムを持っていますが、文字列を使用すると、大きなテキストを処理するのに膨大な時間がかかりますファイル。何かアドバイス? – user1299661

0

それは比較的小さなファイルの場合は、これを行うには1行のJava 7+の方法は次のとおりです。

System.out.println(new String(Files.readAllBytes(Paths.get("testing.txt")))); 

あなただけの文字列にそれを読みたい場合は、それはまた簡単です:

String s = new String(Files.readAllBytes(Paths.get("testing.txt"))); 

詳細については、https://docs.oracle.com/javase/7/docs/api/java/nio/file/package-summary.htmlを参照してください。

乾杯!

関連する問題