Java:如何将OutputStream上的文本格式化为用户控制台的宽度?

时间:2011-11-06 21:21:12

标签: java text console wrapping outputstream

具体来说,我希望发送到用户的OutputStream的文本具有自动换行功能,这样当文本继续到新行时,单词不会被分解。所以不要这样:

The quick brown fox j
umps over the lazy do
g.

它将在控制台中显示如下:

The quick brown fox 
jumps over the lazy 
dog.

我知道的一个选项是编写一个像这样的方法将文本换行到特定的字符宽度:

wrapText(String text, int width)

但我宁愿让文本自动换行到用户控制台的当前宽度。有没有办法做到这一点? java中的任何对象可能对我有帮助吗?谢谢!

2 个答案:

答案 0 :(得分:3)

BreakIterator可以帮助您确定在哪里打破线条,从那里可以很容易地自己做实际线路。

但是,我不知道你如何确定(自动,跨平台)用户控制台的宽度。

答案 1 :(得分:2)

要获取控制台的宽度,您可以使用JLine库。它不是纯Java并且具有一些本机代码,但具有您需要的功能,适用于Windows,Max和Linux。

在JLine中,要获取控制台宽度,请使用Terminal类并调用getTerminalWidth()