• I/O输入输出流


    I/O输入输出:

    1、         判断到底是输入还是输出?永远站在程序的立场上。

    2、         判断到底是传递字节还是字符? 从而判断管道的粗细。

    字节管道是所有数据都可以传,字符管道专门用来传递文本数据。(1个字符等于2个字节)

    Java                           InputStream

    流             字节流

    四                              OutputStream

    大                              Reader

    父             字符流

    类                              Writer

     文件的拷贝,这是可能在面试中出现的手工书写代码!

    功能:将D:/test.avi 拷贝到F:/wudi.avi

    FileInputStream fis = null;

    FileOutputStream fos = null;

    try{

    //1.建立管道

    fis = new FileInputStream(D:/test.avi);

    fos = new FileOutputStream(F:/wudi.avi);

    //2.操作管道

    //int b = 0; //明明是读一个字节,为什么要用一个int来接?

    //         如果read()返回的是byte的话,那就会有负数。而"返回-1意//味着结束",这个信息量用byte是无法表达的,所以必须用int。

    //while((b =fis.read()) != -1){

    //  fos.write(b);

    //}

    byte[] b = new byte[1024];

    int length = 0;//记录读取了多少个有效字节数

    While((length =fis.read(b)) != -1){

          fos.write(b,0,length);

          fos.flush();//强制刷出缓冲区的内容。

    }

    }catch (FileNotFoundException e){

          e.printStackTrace();

    }catch(IOException e){

          e.printStackTrace();

    }finally{

    //3.关闭管道

          if(fis !=null){

               try{

                     fis.close();

    }catch(IOException e){

                     e.printStackTrace();

    }

    }

    if(fos !=null){

               try{

                     fos.close();

    }catch(IOException e){

                     e.printStackTrace();

    }

    }

    }

    对象的序列化与反序列化(分布式应用基础)

    序列化:将内存当中的对象以二进制流的形式输出

    反序列化:将输入的二进制流转换为内存当中的一个对象。

    反序列化(第二种产生对象的方式。)

    延伸出,管道的对接。

          操作流不能单独使用,需要插入节点流

    对象反序列化---将输入的二进制流转换为内存中的对象。

    //File类—来表示操作系统的文件或文件夹对象

    File file = new File(“F:/wudi.avi”);//文件路径

    File dir = new File(“F:/ppt”);//文件夹路径

    //作为文件对象的常用手法:

    String path = file.getAbsoutePath();//获取绝对路径

    String path2 = file.getPath();//获取相对路径

    long space = file.lenth();//获取文件大小

    long time = file.lastModifide();//最后修改时间

    System.out.pringln(new Date(time));

    System.out.pringln(file.isHidden()); //是否是隐藏文件

    System.out.pringln(file.canWrite());

    System.out.pringln(file.isFile()); //是否是文件

    System.out.pringln(file.isDirectory());//是否是文件夹

    //文件分隔符(File.pathSeparator)



     

    String path = “D:” + File.pathSeparator + “fffsa” + File.pathSeparator + “fffsa”;

    //作为文件夹对象的常用方法

    String[] subFileNames = dir.list();//得到文件夹下面的所有子文件或子文件夹的名字

    for(String a : subFileNames){

          System.out.println(a);

    }

    File[] s = dir.leisFiles();//得到文件夹下面的所有子文件或子文件夹

    for(File b : s){

          System.out.println(b.getName());

    }

  • 相关阅读:
    SQL SERVER中一些常见性能问题的总结
    【BZOJ2554】Color 概率神题
    【BZOJ1818】[Cqoi2010]内部白点 扫描线+树状数组
    【BZOJ1879】[Sdoi2009]Bill的挑战 状压DP
    【BZOJ2668】[cqoi2012]交换棋子 费用流
    【BZOJ4372】烁烁的游戏 动态树分治+线段树
    【BZOJ3470】Freda’s Walk 概率与期望
    【BZOJ2087】[Poi2010]Sheep 几何+DP
    【BZOJ4428】[Nwerc2015]Debugging调试 记忆化搜索+分块
    【BZOJ2137】submultiple 高斯消元求伯努利数
  • 原文地址:https://www.cnblogs.com/yj20hl/p/6196127.html
Copyright © 2020-2023  润新知