首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

BufferReader怎样将换行也读取出来解决办法

2012-04-09 
BufferReader怎样将换行也读取出来在传输的字节数据的时候使用的BufferReader读取的像HelloWorld的字符

BufferReader怎样将换行也读取出来
在传输的字节数据的时候使用的
BufferReader读取的像
"Hello
World"
的字符串中包含有换行的情况,读取出来后始终没有换行的情况,读取的结果是"HelloWorld"。

应该怎样读取出来原字符串的情况
"Hello
World"

[解决办法]
你加入换行的转义字符译(\n)试试 "Hello\nWorld"
[解决办法]

Java code
public class BufferReader {        public static void main(String[] args) throws IOException{                FileReader fr=new FileReader("se.txt");                MyBufferedReader mybuf=new MyBufferedReader(fr);                String line=null;                while((line=mybuf.myReadLine())!=null)                {                        System.out.println(line);                }                mybuf.myClose();        }}class MyBufferedReader{        private FileReader r;        MyBufferedReader(FileReader r)        {                this.r=r;        };        //可以一次读一行数据的方法        public String myReadLine(){                StringBuilder sb=new StringBuilder();                int ch=0;                try {                        while((ch=r.read())!=-1)                        {                                if(ch=='\r')                                        continue;;                                if(ch=='\n')                                        continue;                                else                                sb.append((char)ch);                        }                } catch (IOException e) {                        e.printStackTrace();                }                if(sb.length()!=0)                        return sb.toString();                return null;        }        public void myClose(){                try {                        r.close();                } catch (IOException e) {                        e.printStackTrace();                }        }}
[解决办法]
上面看错了,你的意思是原本是换行的就输出换行是吧!
Java code
package com.test.bufferreader;import java.io.FileReader;import java.io.IOException;/*明白了BuffredReader类中特有的方法readLine的原理后可以自定义一个类中包含和readLine原理一样的方法来模拟一下BuffreedReader*/public class BufferReader {        public static void main(String[] args) throws IOException{                FileReader fr=new FileReader("c:tzh.txt");                MyBufferedReader mybuf=new MyBufferedReader(fr);                String line=null;                while((line=mybuf.myReadLine())!=null)                {                        System.out.println(line);                }                mybuf.myClose();        }}class MyBufferedReader{        private FileReader r;        MyBufferedReader(FileReader r)        {                this.r=r;        };        //可以一次读一行数据的方法        public String myReadLine(){                StringBuilder sb=new StringBuilder();                int ch=0;                try {                        while((ch=r.read())!=-1)                        {                                if(ch=='\r')                                        continue;                                if(ch=='\n')                                        break;   //应该是break,本身该方法就只是一行一行的读取,当读取到换行符时,说明已到一行了,不该再继续读下去,所以应使用“break;”                                else                                sb.append((char)ch);                        }                } catch (IOException e) {                        e.printStackTrace();                }                if(sb.length()!=0)                        return sb.toString();                return null;        }        public void myClose(){                try {                        r.close();                } catch (IOException e) {                        e.printStackTrace();                }        }}
------解决方案--------------------



[解决办法]

[解决办法]
在读取的时候加入换行符
[解决办法]

探讨
Java code

StringBuffer strBuf = new StringBuffer();
while ((i = bufferedReader.read()) != -1) {
strBuf.append(bufferedReader.readLine());
……

[解决办法]
读取完一行后添加
stringBuffer.append(System.getProperty("line.separator"));

热点排行