下面这篇对io流整体的文章讲的不错
Java IO流分析整理
字节流:一次读入或读出是8位二进制。
字符流:一次读入或读出是16位二进制。
public static void main(String[] args) {
// File f = new File("e:/aaa");
// boolean b1 = f.createNewFile();
// System.out.println(b1);
// File f = new File("e:/aaa/");
// boolean b1 = f.mkdir();
// System.out.println(b1);
// File f = new File("bbb.txt");
// boolean b1 = f.mkdir();
// System.out.println(b1);
// //重命名
// File f = new File("e:/aaa/bbb.txt");
// File s = new File("e:/aaa/c.txt");
// f.renameTo(s);
// System.out.println(f);
//
// //剪切加重命名
// File f1 = new File("e:/aaa/c.txt");
// File s1 = new File("e:/bb.txt");
// f1.renameTo(s1);
// System.out.println(f1);
//练习
// String fname;
// File f1 = new File("E:/");
// File[] listFile = f1.listFiles();
// for(File f:listFile){
// if(!f.isDirectory()){
// fname=f.getName();
// if(fname.endsWith(".jpg") == true){
// System.out.println(fname+" "+fname.length()+"bytes");
// }
// }
//
// }
//练习
// File f = new File("E:/aaa");
// File[] files = f.listFiles();
// for(File file:files){
// String name = file.getName();
// int index = name.indexOf("_");
// String newFile = name.substring(index+1);
// File f1 = new File(f,newFile);
// file.renameTo(f1);
// }
// File f = new File("E:/aaa");
// File[] files = f.listFiles();
// for(File file:files){
// String name = file.getName();
// String newFile = "[www.it18zhang.com]_" + name;
// File f1 = new File(f,newFile);
// file.renameTo(f1);
// }
// FileOutputStream f = new FileOutputStream("E:/aaa/111.txt");
//单字节输出
// f.write(97);
// f.write(97);
//字节数组输出
// f.write("asd123".getBytes());
//部分字节数组输出
// byte[] a = {'a','b','c','d'};
// f.write(new byte[]{'a','b','c','d','e'}, 3, 2);
// FileOutputStream f = new FileOutputStream("E:/aaa/111.txt",true);
// f.write("中文".getBytes());
// f.write("\n\r".getBytes());
// f.write("asd".getBytes());
//打印每次bytes数组的值
// FileInputStream f = new FileInputStream("e:/aaa/111.txt");
//// System.out.println(f.read());
// byte[] bys = new byte[1024];
// int len=0;
// while((len=f.read(bys)) != -1){
// System.out.println(new String(bys,0,len));
// }
// f.close();
//释放资源的try简便方法(不用再写finally块,小括号里面只能放跟流相关的代码)
try(
FileInputStream fis = new FileInputStream("e:/aaa/111.txt");
FileOutputStream fos = new FileOutputStream("e:/aaa/222.txt");
){
byte[] bys = new byte[1024];
int len=0;
while((len=fis.read(bys)) != -1){
fos.write(bys,0,len);
}
} catch (FileNotFoundException e) {
System.out.println("你输入的文件不存在");
} catch (IOException e) {
System.out.println("输入输出流有问题");
}
}
}
public class BufferedOut {
public static void main(String[] args) throws IOException {
// BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("E:/2.txt"));
//
// //单字节写入到缓冲区
// bos.write(97);
// bos.flush();
// bos.close();
// BufferedInputStream bis = new BufferedInputStream(new FileInputStream("E:/1.txt"));
// byte[] bys = new byte[1024];
// int len=0;
// while((len=bis.read(bys))!=-1){
// System.out.println(new String(bys,0,len));
// }
// //字节数组写入到缓冲区
// BufferedInputStream bis = new BufferedInputStream(new FileInputStream("E:/psu.jpg"));
// BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("E:/psu1.jpg"));
// byte[] bys = new byte[1024];
// int len=0;
// while((len=bis.read(bys))!=-1){
// bos.write(bys,0,len);
// }
// bos.close();
// bis.close();
// FileOutputStream fos = new FileOutputStream("a.txt");
//// byte[] bys = "中".getBytes("UTF-8");
// byte[] bys = "石雅文".getBytes("GBK");
// System.out.println(new String(bys));
// System.out.println(Arrays.toString(bys));
// byte[] bys1 = "王宁".getBytes("GBK");
// System.out.println(new String(bys1));
// System.out.println(Arrays.toString(bys1));
// byte[] bys2 = "静静".getBytes("GBK");
// System.out.println(new String(bys2));
// System.out.println(Arrays.toString(bys2));
// //字符输出流
// OutputStreamWriter ows = new OutputStreamWriter(new FileOutputStream("a.txt"),"UTF-8");
// ows.write(97);
// ows.write("hello");
// char[] ch = {'a','b','c','d'};
// ows.write(ch);
// ows.write(new String("石雅文".getBytes("UTF-8"))); //有问题
// ows.write("石雅文");
// ows.close();
// //字符输入流
// InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));
//
// int len=0;
// char[] chs =new char[1024];
// while((len=isr.read(chs))!=-1){
// System.out.println(new String(chs,0,len));
// }
// InputStreamReader isw = new InputStreamReader(new FileInputStream("a.txt"));
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"));
// int len=0;
// char[] chs = new char[1024];
// while((len=isw.read(chs))!=-1){
// osw.write(chs, 0, len);
// }
// osw.close();
// isw.close();
// InputStreamReader isw = new InputStreamReader(new FileInputStream("e:/name.txt"));
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("name.txt"));
// int len=0;
// char[] chs = new char[1024];
// while((len=isw.read(chs))!=-1){
// osw.write(chs, 0, len);
// }
// osw.close();
// isw.close();
// InputStreamReader isw = new InputStreamReader(new FileInputStream("e:/name.txt"));
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("name.txt"));
// int len=0;
// while((len=isw.read())!=-1){
// osw.write(len);
// }
// osw.close();
// isw.close();
//FileReader和FileWriter 是InputStreamReader、OutputStreamWriter的简化版
// FileReader fr = new FileReader("a.txt");
// FileWriter fw = new FileWriter("b.txt");
// int len=0;
// char[] chs = new char[1024];
// while((len=fr.read(chs))!=-1){
// fw.write(chs,0,len);
// }
// fr.close();
// fw.close();
//缓冲区字符流
// BufferedReader br = new BufferedReader(new FileReader("a.txt"));
// BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
// int len=0;
// char[] chs= new char[1024];
// while((len=br.read(chs))!=-1){
// bw.write(chs,0,len);
// }
// br.close();
// bw.close();
// //缓冲区字符流的readlin()和newline()
// BufferedReader br = new BufferedReader(new FileReader("a.txt"));
// BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
// String str = "";
// while((str=br.readLine())!=null){
// bw.write(str);
// bw.newLine();
// }
// bw.close();
// br.close();
// BufferedReader br = new BufferedReader(new FileReader("a.txt"));
// BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
// String str = "";
// while((str=br.readLine())!=null){
// bw.write(str);
// bw.newLine();
// }
// bw.close();
// br.close();
public class DataInputOutputStream {
public static void main(String[] args) throws Exception {
// //数据流
// DataOutputStream dos =new DataOutputStream(new FileOutputStream("a.txt"));
// dos.write(97);
// dos.writeByte(97);
// dos.writeBoolean(true);
// dos.close();
// DataInputStream dis =new DataInputStream(new FileInputStream("a.txt"));
// int a = dis.read();
// byte b = dis.readByte();
// boolean c = dis.readBoolean();
// System.out.println(a);
// System.out.println(b);
// System.out.println(c);
// dis.close();
// DataOutputStream dos = new DataOutputStream(new FileOutputStream("a.txt"));
// dos.write(97);
// dos.writeByte(97);
// dos.writeBoolean(true);
// dos.close();
// DataInputStream dis = new DataInputStream(new FileInputStream("a.txt"));
// System.out.println(dis.read());
// System.out.println(dis.readByte());
// System.out.println(dis.readBoolean());
// dis.close();
// //内存流
// ByteArrayOutputStream baos = new ByteArrayOutputStream();
// baos.write(97);
// baos.write("asd".getBytes(), 0, 2);
// byte[] byteArray = baos.toByteArray();
// baos.close();
// ByteArrayInputStream bais = new ByteArrayInputStream(byteArray);
// System.out.println(bais.read()); //97 a System.out.println(bais.read(byteArray)); //3返回个数,指针也越过
// System.out.println(bais.read()); //97 s
// System.out.println(bais.read()); //115 d
// bais.read(byteArray, 0, 2);
// //随机文件流
// RandomAccessFile raf = new RandomAccessFile("a.txt","rw");
// byte[] bys = new byte[1024];
// System.out.println(new String(bys,0,raf.read(bys, 0, 3)));
// raf.write(new byte[]{97,98,100});
//对象流 和Student,Teacher 一起看
// ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("oos.txt"));
// oos.writeObject(new Student("王宁",20,new Teacher("王老师")));
// oos.close();
//
// ObjectInputStream ois = new ObjectInputStream(new FileInputStream("oos.txt"));
// Student s1 = (Student)ois.readObject();
// System.out.println(s1.getName());
//
// ois.close();