javaI/O流
I/O流总结:
(1)java流操作的类或接口

(2)按照不同的角度进行分类:
1〉按照流的方向可以分为输入流和输出流;
2〉按照处理数据的不同可以分为字节流(8位)和字符流(16位);
(3) J2SDK所提供的所有位于包java.io内的流类型都分别继承以下四种抽象流类型。

1〉InputStream基本方法:
int read() //读取一个字节并且以一个整形返回,如果返回-1则说明已到输入流的末尾。
int read(byte[] buff ) //读取一系列的字节并存储到一个buff数组中,返回的是实际读到的字节数。
int read(byte[] buff,int offset,int length) //读取length个字节,读取一系列的字节并存储到一个buff数组中,返回的是读到的字节数。
void close() //关闭流
//创建流
FileInputStream fis=new FileInputStream( "C:\\myfile\\my.txt");
byte [] data=new byte[1024];
int len=-1;
//循环读取字节
while((len=fis.read(data))!=-1){
//将读取的字节转换成字符串
String s=new String(data, 0, len);
System.out.println(s);
}
}
2〉OutputStream基本方法:
void write(int b) //向输出流中写入一个字节数据;
void write(byte []) // 将一个字节类型数组中的数据写入到输出流中;
void write(byte [],int off,int len) // 将一个字节类型数组中的数据从指定位置(off),长度为(len)的数据写入到输出流中;
3〉Reader的基本方法:
int reader() //读取一个字符并以整数的形式返回;
int reader(char [] off) //读取一系列的字符并存储到数组off中,返回实际读到的字符数;
int reader(char [] off,int offset,int length) //读取一个字符,从offset位置开始,到length长度;
4〉Writer
void write(int b) //向输出流中写入一个字符数据;
void write( String,String) //将一个字符串中的字符写入到输出流中;
void write(byte [],int off,int len) ////将一个字符类型的数组中从指定位置(off)开始的length长度到输出流中;
例:把D盘文件中的内容读取并写入到C盘文件中:
//创建流对象
Reader reader = new FileReader("D:\\我的青春谁做主.txt");
BufferedReader br = new BufferedReader(reader);
Writer write = new FileWriter("C:\\myfile\\my.txt");
BufferedWriter bw = new BufferedWriter(write);
StringBuffer sbr = new StringBuffer();
String line;
//循环读取内容
while ((line = br.readLine()) != null) {
sbr.append(line);
System.out.println(sbr);
}
//写入到C盘中
String news = sbr.toString();
bw.write(news);
//关闭流
bw.close();
write.close();
br.close();
reader.close();
}
(3)使用二进制读取文本文件
//原始路径
InputStream is=new FileInputStream("C:\\图片.jpg");
DataInputStream dis=new DataInputStream(is);
//目标路径
OutputStream os=new FileOutputStream("E:\\.jpg");
DataOutputStream ois=new DataOutputStream(os);
byte [] data=new byte[1024];
int len;
while((len=dis.read(data))!=-1){
ois.write(data, 0, len);
}
ois.close();
os.close();
dis.close();
is.close();

浙公网安备 33010602011771号