两个程序1:FileReader fr = new FileReader("ming.txt");
int ch = 0;
while((ch = fr.read())!=-1 )
{
System.out.print((char)ch);
}
2:FileInputStream fis=new FileInputStream("ming.txt");
byte[] b=new byte[1024];
int ch = 0;
while((ch = fr.read(b))!=-1 )
{
System.out.write(b,0,n);
}
上网查询了下资料,这两个类的区别,FileReader处理的是字符(unicode 16位的 char),而FileInputStream处理的是字节(8位的byte).还说----最初Java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类!
我不明白的是:
1:我上面两个例子程序处理的都是txt的文本文件,输出的结果是一样的,没看到FileInputStream不支持对
文本文件的区别啊?
2:这两个类在使用的时候到底有什么区别,我们普遍使用哪个类处理文件?
谢谢!!
int ch = 0;
while((ch = fr.read())!=-1 )
{
System.out.print((char)ch);
}
2:FileInputStream fis=new FileInputStream("ming.txt");
byte[] b=new byte[1024];
int ch = 0;
while((ch = fr.read(b))!=-1 )
{
System.out.write(b,0,n);
}
上网查询了下资料,这两个类的区别,FileReader处理的是字符(unicode 16位的 char),而FileInputStream处理的是字节(8位的byte).还说----最初Java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类!
我不明白的是:
1:我上面两个例子程序处理的都是txt的文本文件,输出的结果是一样的,没看到FileInputStream不支持对
文本文件的区别啊?
2:这两个类在使用的时候到底有什么区别,我们普遍使用哪个类处理文件?
谢谢!!
解决方案 »
- 关于extremecomponents 控件导出pdf文件,请用过的高手帮忙看下
- 为什么Fileinputstream读取不到文件
- 请问键盘上的windows键,在程序中应该用什么码来表示?
- JAVA中如何得到客户端真实的IP地址?在线求教
- 请详解“事件驱动(event driven)”的概念
- 在tomcat中如何指定编译java文件时的encoding
- 关于错误处理的方法,请大家讨论,高分给!
- 有一个String类的变量如:s1,怎样得到它的字符编码是什么呢?
- 英雄在哪儿?一个关于weblogic的小问题!60分!
- 谁来帮忙看看
- 为什么我的Hibernate不好使呢~~~
- 插入数据出现空指针,插不进去啊,大家帮忙分析一下这个程序
1,有区别 只是你看不到
输入不同,输出也不同啊你意图打印在屏幕的代码System.out.print((char)ch); System.out.write(b,0,n);
同样是以不同参数,不同方法进行的 一个输入了字符,一个输入了字节
再当System.out把结果给屏幕的时候 看到的又是一样了你可以设个断点
2,通常文本文件FileReader,二进制文件FileInputStream
但FileInputStream实现了InputStream接口 适用性可以无限扩张
文件读入的所有类 所有功能都是基于FileInputStream
而二进制文件帮我举几个例子?
比如txt java tmp !
FileReader is meant for reading streams of characters. For reading streams of raw bytes, consider using a FileInputStream. FileReader是读字符流的。如果要读原始字节流,考虑使用FileInputStream。输出与输入类同
如果你想改下java编译的的字节码,因为.class里面有一些已经是二进制的字节码了
这时你就要用FileInputStream,FileOutputStream来操做了。基本上来说,用记事本打开很正常的文件就可以Reader,writer来操作,如果打开乱码一堆的就要用FileInputStream,FileOutputStream来操做