高手请进!如何从JTextArea中一行一行的读出字符串
我用JTextArea建立了一个text 并在里面输入了三行内容,现在我想按照输入的格式将text中的内容读出并存入到文件中,请问要怎么样才能按一行一行的读取出来
----------------解决方案--------------------------------------------------------
我看了一下JTextArea个JTextComponent的API文档,你这个问题的代码如下(假设你有一个TextArea的对象ta):
for(int i = 0; i < ta.getRows(); i++){
System.out.println(ta.getText(ta.getLineStartOffset(i),ta.getLineEndOffset(i));
}
----------------解决方案--------------------------------------------------------
感谢楼上的 不过我用你的代码运行了下,我的代码如下
for(int i=0;i<text.getRows();i++)
{
try
{
System.out.println(text.getText(text.getLineStartOffset(i),text.getLineEndOffset(i)));
}
catch (Exception ee)
{
}
}
却出现了错误说要抛出BadLocationException异常,可是我加了BadLocaionException后说找不到BadLocaionException这个符号,于是我改成Exception 虽然可以运行了可是结果却有错误
比如我在text中输入3行,可是显示出来的结果是第一正常显示,但下一行会空出一行然后再显示第二行的内容,这到底是怎么回事呢,希望高手给予解答
----------------解决方案--------------------------------------------------------
text.append("\0");
for (int i = 0; i < text.getLineCount(); i++) {
try {
System.out.println(text.getText(text // getText(int offset,int length)
.getLineStartOffset(i), text
.getLineEndOffset(i)
- text.getLineStartOffset(i) - 1));
} catch (BadLocationException ex) {
ex.printStackTrace();
}
}
----------------解决方案--------------------------------------------------------
回复 3楼 我爱JAVA1
二楼略粗心少了异常处理----------------解决方案--------------------------------------------------------
以下是引用pywepe在2009-9-25 17:06:01的发言:
二楼略粗心少了异常处理
多谢指出 二楼略粗心少了异常处理
----------------解决方案--------------------------------------------------------
哦,说句实话,我没有上机试过,我想多出来的一行是打印时用错了函数,如果用System.out.print()方法就不会出现间隔行了,原因是你每读出一行字符串,字符串里已经带了一个换行符(你在输入字符串换行时输入的回车),但是用System.out.println()输出字符串时会在字符串输出后强制换行,这样你每输出一个字符串就会输出连个换行符(一个是字符串本身自有的换行符,另外一个是System.out.println()加的。
----------------解决方案--------------------------------------------------------
感谢大家的帮助 ,我试了四楼的方法终于成功了,也和大家学到了很多东西,希望我们继续互相帮助
----------------解决方案--------------------------------------------------------