标签:user out 缓冲流 close 注意 关闭 final 字节 put
字节流,字符流:--------->非文本文件都用字节流8bit传输, 其余(文本文件)使用字符流16bit.
输入流,输出流:--------->数据输入程序输入流,程序输出数据输出流
四个主要抽象实现类:
抽象基类 节点流(文件流) 缓冲流
操作步骤:
特别注意:
字符流实操
package iotest;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.junit.Test;
public class FileTest {
public void testFileReader() {
//创建流及对应的文件
File f1=null;
FileReader fr=null;
try {
f1 = new File("E:\\testFile\\hello.txt");
fr = new FileReader(f1);
//具体的读取操作
System.out.println(fr.read());
} catch (IOException e) {
e.printStackTrace();
}finally {
//关闭流
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Test
public void testFileWriter() {
//创建流及文件
File f2=new File("target1.txt");
FileWriter fw=null;
try {
fw = new FileWriter(f2);
//写入具体过程
fw.write("对不起,我是警察");
fw.write("你是警察,谁又知道呢!");
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//使用(字符流)FileReader和FileWriter完成文本文件复制操作
//复制 @Test public void testCopy() { //创建流和文件 FileReader fr=null; FileWriter fw=null; try { File ff1=new File("target.txt"); File ff2=new File("target1.txt"); fr=new FileReader(ff1); fw=new FileWriter(ff2); //具体的读入和写出操作 char [] cbuf=new char[5]; int len; while ((len=fr.read(cbuf)) !=-1) { //写出操作 fw.write(cbuf, 0, len); } } catch (IOException e) { e.printStackTrace(); }finally { //关闭资源 try {fw.close(); } catch (IOException e) { e.printStackTrace(); } try { fr.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
//使用(字节流)FileInputStream和FileOutStream完成非文本文件复制操作
package iotest; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.junit.Test; public class FileOutTest { //复制 @Test public void testCopy() { FileInputStream fir=null; FileOutputStream fow=null; try { //创建流和文件 File ff1=new File("C:\\Users\\花花\\Pictures\\Camera Roll\\小帅哥.jpeg"); File ff2=new File("C:\\Users\\花花\\Pictures\\Camera Roll\\tim1.jpg"); fir=new FileInputStream(ff1); fow=new FileOutputStream(ff2); //具体的读入和写出操作 byte[] buffer=new byte[1024]; int len; while ((len=fir.read(buffer)) !=-1) { //写出操作 fow.write(buffer, 0, len); } } catch (IOException e) { e.printStackTrace(); }finally { //关闭资源 try { fow.close(); } catch (IOException e) { e.printStackTrace(); } try { fir.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
标签:user out 缓冲流 close 注意 关闭 final 字节 put
原文地址:https://www.cnblogs.com/ylblikestudyJava/p/12398445.html