文件读取多行到一个字符串

时间:2013-09-24 02:22:06

标签: java string file

我有一个JTextArea(又名“notes”),用户可以在其中键入文本并以任何希望的格式对其进行空格。然后将字符串存储在文件中,其他字符串,以便稍后读取。应该稍后读取“notes”字符串并将其放回JTextArea,其格式与最初保存的格式相同。

如果您有2个文本区域,执行此操作将传输正确的格式:

JTextArea text1 = new JTextArea();
JTextArea text2 = new JTextArea();

text2.setText(text1.getText);

但是,写入文件是不同的,因为in.next();读取一个字符串,而不是整个文本区域的值。

从文本文件中读取/多个字符串后,您如何能够保持正确的格式?

编辑:该文件看起来像这样:

String1
String2
some_long_string
12345
foobar
This string was taken from the JTextArea mentioned above. Imagine that this is all one String and has a lot of whitespace in it.

2 个答案:

答案 0 :(得分:1)

JTextArea中的文本可以包含换行符,因此您必须在文件中写入一些内容来解释此问题。

一种方法是编写不太可能出现在JTextArea文本中的分隔符字符串:

String1
String2
some_long_string
12345
foobar
*** BEGIN JTEXTAREA TEXT ***
This string was taken from the JTextArea.
It contains multiple lines.
*** END JTEXTAREA TEXT ***

另一种方法是逃避换行。你可以使用URLEncoder和URLDecoder,只要你不介意文本在文件中不会是人类可读的:

String1
String2
some_long_string
12345
foobar
This+string+was+taken+from+the+JTextArea.%0AIt+contains+multiple+lines.

答案 1 :(得分:0)

我可以想到两种机制......

  1. 使用JTextArea的内置read方法自行阅读文件
  2. 使用append方法JTextAreaappend个新String添加到文本区域。请记住,您需要提供换行符;)