标题:高手请进!如何从JTextArea中一行一行的读出字符串
只看楼主
我爱JAVA1
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2009-9-9
结帖率:80%
已结贴  问题点数:3 回复次数:7 
高手请进!如何从JTextArea中一行一行的读出字符串
我用JTextArea建立了一个text 并在里面输入了三行内容,现在我想按照输入的格式将text中的内容读出并存入到文件中,请问要怎么样才能按一行一行的读取出来
搜索更多相关主题的帖子: 字符 JTextArea 
2009-09-24 21:20
ygp_sfec
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:87
专家分:115
注 册:2009-9-8
得分:1 
我看了一下JTextArea个JTextComponent的API文档,你这个问题的代码如下(假设你有一个TextArea的对象ta):
      
for(int i = 0; i < ta.getRows(); i++){
    System.out.println(ta.getText(ta.getLineStartOffset(i),ta.getLineEndOffset(i));
}
2009-09-24 22:37
我爱JAVA1
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2009-9-9
得分:0 
感谢楼上的 不过我用你的代码运行了下,我的代码如下
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行,可是显示出来的结果是第一正常显示,但下一行会空出一行然后再显示第二行的内容,这到底是怎么回事呢,希望高手给予解答
2009-09-25 11:19
卡卡小罗
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:334
专家分:131
注 册:2008-12-11
得分:2 
                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();
                    }
                }

匣浅难羁宝剑锋 玉藏石中也玲珑
初试清啼长天破 云光凝碧远岚平
2009-09-25 14:17
pywepe
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:296
专家分:483
注 册:2009-4-5
得分:0 
回复 3楼 我爱JAVA1
二楼略粗心少了异常处理

java群
62635216
欢迎加入
2009-09-25 17:06
ygp_sfec
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:87
专家分:115
注 册:2009-9-8
得分:0 
以下是引用pywepe在2009-9-25 17:06:01的发言:

二楼略粗心少了异常处理
多谢指出
2009-09-25 18:04
ygp_sfec
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:87
专家分:115
注 册:2009-9-8
得分:0 
哦,说句实话,我没有上机试过,我想多出来的一行是打印时用错了函数,如果用System.out.print()方法就不会出现间隔行了,原因是你每读出一行字符串,字符串里已经带了一个换行符(你在输入字符串换行时输入的回车),但是用System.out.println()输出字符串时会在字符串输出后强制换行,这样你每输出一个字符串就会输出连个换行符(一个是字符串本身自有的换行符,另外一个是System.out.println()加的。
2009-09-25 18:22
我爱JAVA1
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2009-9-9
得分:0 
感谢大家的帮助 ,我试了四楼的方法终于成功了,也和大家学到了很多东西,希望我们继续互相帮助
2009-09-26 09:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-286710-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.553045 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved