黑马程序员技术交流社区
标题:
fr.read(buf)过程
[打印本页]
作者:
闫江龙
时间:
2011-12-22 23:18
标题:
fr.read(buf)过程
本帖最后由 闫江龙 于 2011-12-23 00:01 编辑
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打印出来都变成一行了?
作者:
曾运
时间:
2011-12-22 23:28
是的 输入流读取的时候会把该位置换行符也会读取进去,再通过输出流在同样位置写出来。所以打印的内容格式与要读取的内容格式相同
ps:BufferedReader 的readLine() 方法 是整行整行的读取,换行符是每行结束的标志,读取的时候读取一整行的内容,但是不包括换行符。
作者:
于汝国
时间:
2011-12-22 23:44
public int read(char[] buf)是将字符读入到buf数组中,读取时会把换行符也读进去,所以在输出流输出数据时,也会把输入流读取的换行符输出,所以写出的内容格式与读取的内容格式一致。
作者:
张绍成
时间:
2011-12-23 20:51
看看下面的代码你就明白了:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
// 利用 FileReader 来读取文件本身
public class FileReaderTest {
public static void main(String[] args) throws IOException {
FileReader fr = null ;
try {
fr = new FileReader("D:\\Hello.java");
char[] cbuf = new char[1024];
int len ;
while((len=fr.read(cbuf))!=-1){
System.out.println(new String(cbuf,0,len));
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fr!=null){
fr.close();
}
}
}
}
复制代码
运行结果:
public calss Hello{
public static void mian(String args[]){
System.out.println("hello");
}
}
复制代码
代码2:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
// 利用 FileReader 来读取文件本身
public class FileReaderTest {
public static void main(String[] args) throws IOException {
FileReader fr = null ;
try {
fr = new FileReader("D:\\Hello.java");
char[] cbuf = new char[32];
int len ;
while((len=fr.read(cbuf))!=-1){
System.out.println(new String(cbuf,0,len));
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fr!=null){
fr.close();
}
}
}
}
复制代码
运行结果:
public calss Hello{
public sta
tic void mian(String args[]){
System.out.println("hello");
}
}
复制代码
不知道上面的代码效果是不是你想要的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2