Java 每次向字符串添加一行

Java 每次向字符串添加一行,java,swing,file-io,java.util.scanner,jtextarea,Java,Swing,File Io,Java.util.scanner,Jtextarea,我有一个程序,可以让你打开一个文件,它使用以下代码一次将其读入JTextArea: try{ String fileContents = new Scanner(new File(fileName)).useDelimiter("\\Z").next(); }catch(FileNotFoundException ex){ ex.printStackTrace(); } myTextArea.setText(fileContents); 这是有效的。但我的问题是

我有一个程序,可以让你打开一个文件,它使用以下代码一次将其读入
JTextArea

 try{
    String fileContents = new Scanner(new File(fileName)).useDelimiter("\\Z").next();
  }catch(FileNotFoundException ex){
    ex.printStackTrace();
  }

  myTextArea.setText(fileContents);
这是有效的。但我的问题是,我如何将其读入我的
fileContents
字符串中,并在每次获得新行字符时将其添加到换行符中

这是我所拥有的,但这将它全部放在我的文本区域的一行中:

 try{
Scanner contentsTextFile = new Scanner(new File(fileName));
while(contentsTextFile.hasNext()){
    fileContents = contentsTextFile.useDelimiter("\r\n|\n").nextLine(); 
    }

}catch(FileNotFoundException ex){
    ex.printStackTrace();
}

   myTextArea.setText(fileContents);
我想看到的是,这行文本使用分隔符获得一个新行,该分隔符一次只读取一行,而不是整个文件

有人能帮忙吗?

最简单的方法是使用以下方法:

从流初始化。这将创建适合组件类型的模型,并从流中初始化模型。默认情况下,这将以纯文本形式加载模型。将丢弃模型的以前内容


您可以使用
BufferedReader
逐行读取文件,并使用
JTextArea
append()
方法读取每一行。为方便起见,将
JTextArea
包装在大小合适的
JScrollPane
中,如图所示。如果您预计到任何延迟,请使用a在后台读取,并在
process()
中调用
append()


我不确定我是否明白你在告诉我什么。我不能一次将一行读入一个字符串,然后将它连接到该字符串已经包含的内容上,并为每个新的连接提供一个换行符吗?试试看,看看它有什么作用。让我试试这个,我会给你回复的。也请考虑<代码>附录()/<代码>代码> JTextArea < /代码>。是的,这是我决定要做的。我使用
FileReader
BufferedReader
获取文件内容,然后使用
myTextArea.append(contents)将它们一次一个地附加到
JTextArea
+1,但JTextComponent.read/write接受文件中的分隔符(双向I/O)@mKorbel:同意对
文档进行不可分割的操作。除了扫描器之外的任何东西
!:-)
BufferedReader in = new BufferedReader(new FileReader(fileName));
String s;
while ((s = in.readLine()) != null) {
    myTextArea.append(s + "\n");
}