黑马程序员技术交流社区

标题: 把文件中的数据读取到文本区域中的问题 [打印本页]

作者: 侯丛政    时间: 2013-2-19 16:30
标题: 把文件中的数据读取到文本区域中的问题
本帖最后由 侯丛政 于 2013-2-20 13:01 编辑

                // 把文件中的数据读取出来显示在文本区域中
                bu3.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                                //读取数据前,把以前的数据清空
                                ta.setText("");
                                
                                try {
                                        BufferedReader br = new BufferedReader(new FileReader(
                                                        "pw.txt"));
                                        String line = null;
                                        while ((line = br.readLine()) != null) {
                                                ta.append(line + "\r\n");   // 在把文本中的数据读取到文本区域时为什么要自己加上 "\r\n" 呢 ? (读取到控制台貌似是不用加的)
                                        }
                                        br.close();
                                } catch (IOException e1) {
                                        e1.printStackTrace();
                                }
                        }
                });


作者: 曹春贵    时间: 2013-2-19 16:45
从文本读取数据加载到文本域控件时,此时文本域就好比一个容器,默认加载后是长字符串连在一起的,需要你在每行读取数据后的末尾加上换行符,用此来给文本域内容换行。控制台你读取数据输出时,可能使用的换行输出,即out.println,每行输出默认加上换行。若使用out.print,那么输出的数据就是一行长字符串。
作者: 郭嘉    时间: 2013-2-19 16:59
readline本身的方法是不会将读到的数据后面添加换号标识的,需要自己手动添加
作者: 胥文    时间: 2013-2-19 17:29
本帖最后由 胥文 于 2013-2-19 17:30 编辑

读取到控制台应该是这样的吧
public static void main(String[] args) throws IOException  {
               
                BufferedReader bufr = new BufferedReader(new FileReader("D:\\myEclipse\\Genuitec\\MyEclipse 8.5\\Workspaces\\staticimport\\src\\cn\\itcast\\day1\\Demo1.java"));
               
                String line = null;
                while((line=bufr.readLine())!=null)
                        System.out.println(line);//这里是通过println来换行的,如果写成System.out.print(line);就不会换行                                                      
                                                                //而文本区域的append(String str)方法是将给定文本添加到文本区域的当前文本,如果不加"\r\n"                                                            
                                                                  //文本就全部连在一起了,所以必须手动添加换行;
               
        }        
作者: 偏執旳、靑春    时间: 2013-2-19 17:29
读到文本中时 没有一个换行的方法
而读到DOS窗口下时 你用的应该是println,这个Ln就是表示读了一行。
毕老师说了 \r\n在windows下用 \n在linux下用
编程这一般不可能预知用户的操作系统,所以java 封装了一个readline()方法可以自动换行,读容器里面有个方法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2