黑马程序员——10_IO_read方法笔记
2015-07-05 22:51
411 查看
已字节流为例。
开始对于read方法返回值存在疑问,后通过最返回值打印,进一步确认具体返回内容,确信read()返回为下一个字节数据内容,而read(数组)和read(byte[] b,int offset,int length)返回的是本次缓冲的字节长度,即多少个字节,且这个返回值小于等于传入数组的长度。
再一个是write方法实现的区别。
首先用write(int b)输出的文本文件使用UE查看时,是以文字的形式展现。
而使用write(数组)和write(byte[] b,int offset,int length)输出的文本文件使用UE查看时,是以编码的形式展现(但仍能获取原文字讯息),而用记事本打开则恢复文字形式。
一下为实例代码:
注:为了迅速解决问题(对read和write的疑问),将异常直接抛出了
import java.io.*;
public class FileStreadDemo {
public static void main(String[] args) throws IOException{
String t="e:\\java\\javarun\\FileStream.txt";
String s="e:\\java\\javarun\\Res.txt";
Stream2(s,t);
}
public static void Stream1(String s,String t)throws IOException{
FileOutputStream fos=new FileOutputStream(t);
FileInputStream fis=new FileInputStream(s);
int b=0;
while((b=fis.read())!=-1){//read()返回是下一个字节数据
fos.write(b);
}
fos.close();
fis.close();
}
public static void Stream2(String s,String t)throws IOException{
FileOutputStream fos=new FileOutputStream(t);
FileInputStream fis=new FileInputStream(s);
int b=0;
byte[] barr=new byte[fis.available()];//仅适用于小文件,大文件用1024整数倍
while((b=fis.read(barr))!=-1){//read(数组)返回的是本次读取数据长度,即多少个字节
fos.write(barr,0,b);
}
fos.close();
fis.close();
}
}
开始对于read方法返回值存在疑问,后通过最返回值打印,进一步确认具体返回内容,确信read()返回为下一个字节数据内容,而read(数组)和read(byte[] b,int offset,int length)返回的是本次缓冲的字节长度,即多少个字节,且这个返回值小于等于传入数组的长度。
再一个是write方法实现的区别。
首先用write(int b)输出的文本文件使用UE查看时,是以文字的形式展现。
而使用write(数组)和write(byte[] b,int offset,int length)输出的文本文件使用UE查看时,是以编码的形式展现(但仍能获取原文字讯息),而用记事本打开则恢复文字形式。
一下为实例代码:
注:为了迅速解决问题(对read和write的疑问),将异常直接抛出了
import java.io.*;
public class FileStreadDemo {
public static void main(String[] args) throws IOException{
String t="e:\\java\\javarun\\FileStream.txt";
String s="e:\\java\\javarun\\Res.txt";
Stream2(s,t);
}
public static void Stream1(String s,String t)throws IOException{
FileOutputStream fos=new FileOutputStream(t);
FileInputStream fis=new FileInputStream(s);
int b=0;
while((b=fis.read())!=-1){//read()返回是下一个字节数据
fos.write(b);
}
fos.close();
fis.close();
}
public static void Stream2(String s,String t)throws IOException{
FileOutputStream fos=new FileOutputStream(t);
FileInputStream fis=new FileInputStream(s);
int b=0;
byte[] barr=new byte[fis.available()];//仅适用于小文件,大文件用1024整数倍
while((b=fis.read(barr))!=-1){//read(数组)返回的是本次读取数据长度,即多少个字节
fos.write(barr,0,b);
}
fos.close();
fis.close();
}
}
相关文章推荐
- 黑马程序员——09_集合toArray的意义
- 黑马程序员——08_Arrays.asList泛型与打印时注
- 黑马程序员——07_Collections.reverseOrder()传入比较器时需注意
- 黑马程序员——06_传参数时需注意
- 黑马程序员——05_折半搜索易犯错误
- 黑马程序员——04_写泛型注意
- 黑马程序员——03_集合中null的注意
- 我的游戏蜗牛web前端面试经历
- 黑马程序员——01_比较器中比较结果顺序快速颠倒
- 黑马程序员——Java基础--集合(四)
- 10+年程序员总结的20+条经验教训
- 如何跟程序员谈一场没有Bug的恋爱
- 标 题: [心得]传统IT转互联网面试经验分享
- 码农、黑客和2B程序员之间的区别
- 《程序员的自我修养》读书笔记5
- 面试题34:丑数
- 面试需要掌握知识点
- 黑马程序员---android入学考试题
- it男的面试
- AJAX 20道经典面试题