Как импортировать данные из текстовых файлов в JTextArea? - PullRequest
1 голос
/ 28 января 2011

У меня есть текстовый файл с 10 строками информации.Как скопировать вставить эту информацию в JTextArea?

public void createPage4()
    {
    panel4 = new JPanel();
    panel4.setLayout( new BorderLayout() );

    BufferedReader log=null;

        try {


        FileReader logg =new FileReader("logsheet.txt");
            log = new BufferedReader(logg); 

        textArea = new JTextArea("how do I get all the content of logsheet, I can get it on the command window as shown below");




        for (int x = 0 ; x<10; x++){

            System.out.println(log.readLine());

             }


             panel4.add(textArea);

Ответы [ 3 ]

1 голос
/ 28 января 2011
textArea.read(new BufferedReader(new FileReader("logsheet.txt"), null));
1 голос
/ 28 января 2011

Вам нужно использовать Append () , чтобы скопировать каждую прочитанную строку в конец компонента JTextArea.

Append

public void append (String str) Присоединяется данный текст до конца документ. Ничего не делает, если модель null или строка является нулевой или пустой. Этот метод является потокобезопасным, хотя большинство методов Swing - нет. Посмотри пожалуйста Как использовать темы для более информация.

Параметры: str - текст для вставки Смотрите также: insert (java.lang.String, целое)

Ваш цикл for станет:

for (int x = 0 ; x<10; x++){
    textArea.append(log.readLine() + "\n");
}
0 голосов
/ 28 января 2011

Что-то вроде следующего должно помочь:

BufferedReader reader = new BufferedReader(new FileReader("logsheet.txt"));
String line;
while((line = reader.readLine()) != null) {
    textArea.append(line).append("\n");
}
reader.close();

Здесь вы читаете все содержимое файла (поэтому не имеет значения, сколько в нем строк), добавляя содержимое впостроитель строк, а затем установка текстовой области для содержимого построителя строк.(Также важно не забывать закрывать свой читатель после того, как вы закончили с ним.)

Выше просто добавится к текстовой области.Если вы хотите сначала очистить его, добавьте textArea.setText(""); перед циклом while.

Если вы хотите убедиться, что читаются только первые 10 строк, добавьте счетчик, увеличивайте его на каждой итерации цикла whileи затем выйдите, если это 10 или выше (я оставлю это как упражнение по реализации, если вам это нужно!)

...