Java中有输入流,输出流
具体分为两类;
字节流:字节输入输出流 FileInputStream ,FileOutputStream
字节缓冲流:BufferedInputStream , BufferedOutputStream
字符流:字符输入输出流 InputStreamReader, OutputStreamWriter, FileReader , FileWriter
字符缓冲流:: BufferedReader,BufferedWriter
- 第1类—字节流和字节缓冲流:
1)字节流:字节输入输出流 FileInputStream ,FileOutputStream
(1)对象创建:
//根据数据源创建字节输入流对象
FileInputStream fis = new FileInputStream(“E:\itcast\窗里窗外.txt”);
//根据数据源创建字节输出流对象
FileOutputStream fos = new FileOutputStream(“myByteStream\窗里窗外.txt”);
(2)i.一次读取一个字节
int ch;
while((ch=fis.read())!=-1){
fos.write((char)ch);
}
ii.按字节数组读取
//读取数据,复制图片文件
byte[] bys = new byte[1024];
int len;
while((len=fis.read(bys))!=-1){
fos.write(bys,0,len);
}
(3)资源释放
//释放资源
fis.close();
fos.close();
2)字节缓冲流:BufferedInputStream , BufferedOutputStream
(1) 对象创建
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(“E:\itcast\BigData.mp4”));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(“myByteStream\BigData3.mp4”));
(2)i.一次读取一个字节
int ch;
while((ch=bis.read())!=-1){
bos.write((char)ch);
}
ii.按字节数组读取
//读取数据,复制图片文件
byte[] bys = new byte[1024];
int len;
while((len=bis.read(bys))!=-1){
bos.write(bys,0,len);
}
(3) 资源释放
bos.close();
bis.close();
-
第2类-字符流
1)字符输入输出流 InputStreamReader, OutputStreamWriter, FileReader,FileWriter
(1)对象创建
//根据数据源创建字符输入流对象
InputStreamReader isr = new InputStreamReader(new FileInputStream(“myCharStream\Conversion.java”));
//根据目的地创建字符输出流对象
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(“myCharStream\Conversion副本.java”));//根据数据源创建字符输入流对象
FileReader fr = new FileReader(“myCharStream\Conversion.java”);
//根据目的地创建字符输出流对象
FileWriter fw = new FileWriter(“myCharStream\Copy.java”);
(2)i. 一次读一个字符
int ch;
while((ch=fr.read())!=-1){
fw.write(ch);
}
ii.按字符数组读取
//一次读一个字符数组
int len;
char[] chs = new char[1024];
while((len=fr.read(chs))!=-1){
fw.write(chs,0,len);
}
(3) //释放资源
fw.close();
fr.close();
2)字符缓冲流 BufferedReader,BufferedWriter
(1) 创建对象
//字符缓冲输入流
BufferedReader br = new BufferedReader(new FileReader(“myCharStream\Conversion.java”));
//字符缓冲输出流
BufferedWriter bw = new BufferedWriter(new FileWriter(“myCharStream\copy2.java”));
(2)i.一次读取一个字节
int ch;
while((ch=br.read())!=-1){
bw.write(ch);
}
ii.一次读取一个字符数组
int len;
char[] bys = new char[1024];
while((len=br.read(bys))!=-1){
bw.write(bys,0,len);
}
iii.按字符串形式读取
String line;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
(3)释放资源
bw.close();
br.close();