2012-03-25 6 views
2

を見ているようなテキストファイルを読み込み、私はこのようなものが含まれているテキストファイルがあります。JavaのIO:彼らは

Hello, my name is Joe 

What is your name? 
My name is Jack. 

That is good for you. 

を唯一の問題は、私は表示するには、appendメソッドをJTextAreaのにロードする必要があるということですそのようなJScrollPaneの中のテキスト:

Hello, my name is JoeWhat is your name?My name is Jack.That is good for you. 
:私はテキストエリアにファイルを読み込むときに

JTextArea ta = new JTextArea(); 
JScrollPane sp = new JScrollPane(ta); 

しかし、テキストエリアには、このような何かを表示します

BufferedReaderは改行(\ n)をJTextAreaに読み込むことはありません。読者にファイルに表示されている空白と空白行を追加させるにはどうすればよいですか?誰かが助けてくれれば、私はそれを感謝します。ありがとう!

+0

あなたは 'はBufferedReader.readLine()'メソッドを使用している場合は、それが書かれている行の行の終端文字を消費します。だから、 '\ n'を読み込み文字列の中に手作業で追加しなければなりません。あるいは、バッファに 'BufferedReader.read()'を使うこともできます。 http://stackoverflow.com/questions/4758525/carriage-return-and-new-line-with-java-and-readline – ecle

+0

あなたのコードブロックを投稿して、テキストファイルを読みやすくしてください。 – tsatiz

答えて

4

については

すべてJTextComponentsは、テキストファイルを読み込むと、完全に現在のオペレーティングシステムのための改行文字を尊重しながら、テキストファイルに書き込む機能を持っている、そしてこれを使用するのが有利であることが多いです。あなたの場合、JTextAreaのread(...)メソッドを使用して、ファイルシステムのネイティブ改行文字を完全に理解しながらファイルを読み込みます。そのような何か:

BufferedReader br = new BufferedReader(new FileReader(file)); 
textArea.read(br, null); 

以上の完全な例:

import java.io.*; 
import javax.swing.*; 

public class TextIntoTextArea { 
    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      createAndShowGui(); 
     } 
     }); 
    } 

    private static void createAndShowGui() { 
     JFileChooser fileChooser = new JFileChooser(); 
     int response = fileChooser.showOpenDialog(null); 
     if (response == JFileChooser.APPROVE_OPTION) { 
     File file = fileChooser.getSelectedFile(); 
     BufferedReader br = null; 
     try { 
      br = new BufferedReader(new FileReader(file)); 
      final JTextArea textArea = new JTextArea(20, 40); 

      textArea.read(br, null); // here we read in the text file 

      JOptionPane.showMessageDialog(null, new JScrollPane(textArea)); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      if (br != null) { 
       try { 
        br.close(); 
       } catch (IOException e) { 
       } 
      } 
     } 
     } 
    } 
} 
+0

それはさらに良い!ありがとうございました – MrDrProfessorTyler

+0

よろしくお願いいたします。 –

3

改行を追加するときに改行を追加します。例

String output = ""; 
try { 
    BufferedReader br = new BufferedReader(new FileReader(args[i])); 
    while ((thisLine = br.readLine()) != null) { 
     thisLine += "\n"; 
     output += thisLine; 
    } 
} // end try 
catch (IOException e) { 
    System.err.println("Error: " + e); 
}