将多行JTextArea写入txt文件

所以我有一个用于用户输入的JTextArea ,然后当他们点击一个按钮将它写入文本文件时,我将setLineWrapsetWrapStyleWord设置为JTextArea true

我想写文本文件中文本框中显示的确切方式。

我试图在String上执行replace("\n", System.getProperty("line.separator")) ,其中包含JTextArea的内容,但是只有当用户在键入输入时实际点击返回键时,但如果用户只是一直打字并点击一行的末尾,使其跳转到它下面的一行,则replace不起作用。

我也试过使用一个StringBuffer ,我计算了在线上适合多少个字符,然后在每一行的末尾运行一个for loop inserting新行,所以对于第一行,我将它添加到位置90 ,第二行添加到180 ,第270 ,依此类推。 但我很快就意识到这并不适用于所有情况,因为有些字符比其他字符小,例如你可以在一行上比p更适合j

我想做的就是找出计算一行结束的方法,以便知道在哪里insert新行,但我也对其他建议持开放态度。 谢谢。 如果你认为看到我的一些代码就会有所帮助。

更新而不是实现代码来执行此操作,我与那些将成为使用此程序的唯一人员之一的人交谈,并且他对常规记事本格式很好并且我没有意识到它,但只要他已经检查了wordWrap然后记事本格式设置将消除他必须使用侧滚动以读取整行,感谢您的输入

使用Utilities

 public static final int getRowStart(JTextComponent c, int offs) public static final int getRowEnd(JTextComponent c, int offs) 

你传递偏移量并获得行开始和结束的偏移量

除了使用字体指标计算单词长度并执行文本区域已经执行的操作之外,我不知道如何操作。

但这背后的目的是什么?

Interesting Posts