黑马程序员技术交流社区
标题:
fr.read(buf);过程
[打印本页]
作者:
刘晓康
时间:
2012-4-5 20:27
标题:
fr.read(buf);过程
FileReader fr = new FileReader("DateDemo.java");
char[] buf = new char[1024];
int num = 0;
while((num=fr.read(buf))!=-1)
{
System.out.print(new String(buf,0,num));
}
fr.close();
上面代码中 fr.read(buf)过程中 比如说 读到第一行没有了 会读取一个换行符打印 还是怎么样 要不print打印出来都变成一行了?
作者:
贠(yun)靖
时间:
2012-4-5 20:43
FileReader fr = new FileReader("DateDemo.java");
char[] buf = new char[1024]; 这是你自己定义一个数组缓冲区 大小为1024字节的
int num = 0;
while((num=fr.read(buf))!=-1) read一次读取一个字符 依次的添加到数组缓冲区中,如果要读取的文本没有到读取完时,数组添加满了,则返回数组的长度,此时,打印
{ 一次数组,继续read读取字符 还是一次添加到数组且从数组开始处添加,当读取的字符为最后一个字符时,在读取下一个时没有字符了
System.out.print(new String(buf,0,num)); 此时就返回-1 打印数组中的字符,并返回结果-1 循环结束
}
fr.close();
作者:
张志阳
时间:
2012-4-5 21:11
输入流读取的时候会把该位置换行符也会读取进去,再通过输出流在同样位置写出来。所以打印的内容格式与要读取的内容格式相同
BufferedReader 的readLine() 方法 是整行整行的读取,换行符是每行结束的标志,读取的时候读取一整行的内容,但是不包括换行符。
作者:
邓飞飞
时间:
2012-4-6 06:53
FileReader fr = new FileReader("DateDemo.java");
char[] buf = new char[1024];
int num = 0;
while((num=fr.read(buf))!=-1)
//read ()在读取时是会判断的,只要读到\r\n就会换行的
{
System.out.print(new String(buf,0,num));
}
fr.close();
作者:
黄长利
时间:
2012-4-6 07:37
FileReader fr = new FileReader("DateDemo.java");
char[] buf = new char[1024];
int num = 0;
while((num=fr.read(buf))!=-1)
//read方法一次读取一个字符,并存入字符数组之中,读到换行符时,同样是存储到自定义的字符数组之中,直到字符数组存满为止,此时//再将字符数组中的字符一次性打印,字符数组指针归0,然后进行下一轮的循环,在最后一行,不足1024个字符时,num是返回字符中数组存储的个数,此时数组后面存储的是//null,然后将字符数组中该长度的字符打印。
{
System.out.print(new String(buf,0,num));
}
fr.close();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2