来源:互联网 发布:淘宝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();