流
来源:互联网 发布:淘宝pc 编辑:程序博客网 时间:2024/05/17 00:16
下面这篇对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();
阅读全文
0 0