1

我有一个 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.
4

2 回答 2

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.
于 2013-09-25T12:46:17.817 回答
0

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

  1. 使用内置read方法JTextArea读取文件本身
  2. 使用new s到文本区域的append方法。请记住,您需要提供换行符;)JTextAreaappendString
于 2013-09-24T02:25:23.803 回答