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");
}