• Java io流的概述


      Java语言定义了许多专门负责各种方式的输入/输出,这些类都被放在java.io包中。其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。

      输入流

      InputStream类是字节输入流的抽象类,是所有字节输入流的父类。InputStream类里面包含很多方法,主要理解FileInputStream,了解一下BufferedInputStream和DataInputStream。

    InputStream类常用的方法

    方法 说明
    read() 从输入流中读取数据的下一个字节。返回0-255范围内的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回-1
    read(bytr[] b) 从输入流中读入一定长度的字节,并以整数的形式返回字节数
    close() 关闭此输入流并释放与该流关联的所有系统资源

      Java中的字符是Unicode编码,是双字节的。InputStream是用来处理字节的,在处理字符文本时不是很方便,所以java为字符文本的输入提供了专门的一套单独的类Reader,但Reader类并不是InputStream类的替换者,只是在处理字符串时简化了编程。

      Reader常用的一个方法就是FileReader。

      输出流

      OutputStream类是字节输入流的抽象类,此抽象类表示输出字节流的所有类的超类。OutputStream类中常用的也是FileOutputStream,了解BufferedOutputStream和DataOutputStream。

    OutputStream类常用的方法

    方法 说明
    write(int b) 将制定的字节写入此输出流
    write(byte[] b) 将b.length个字节从指定的byte数组写入此输出流
    flush() 彻底完成输出并清空缓存区
    closr() 关闭输出流

      Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类,常用的就是FileWriter。

      File类

      File类是io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操作文件。可以通过调用File类中的方法,实现创建、删除、重命名文件等。File类既可以操作文件,也可以操作目录,即文件夹。

      首先是创建文件:

            String fileName = "d:\aaa.txt";
            File f = new File(fileName);
            f.createNewFile();    

      创建目录:

         String dirName = "d:\aaa";
            File f = new File(dirName);
            f.mkdirs();

      删除文件:

           String fileName = "d:\aaa.txt";
            File f = new File(fileName);
            f.delete();    

      列出文件夹里的内容:

            String a = "I:\CloudMusic\";
            File f = new File(a);
            File[] fs = f.listFiles();
            for(int i = 0; i<fs.length;i++){
                if(fs[i].isDirectory()){
                    System.out.print("[目录]");
                }
                else if(fs[i].isFile()){
                    System.out.print("[文件]");
                }
                String s = fs[i].getPath();
                System.out.println(s);
            }

      列出文件名的数组:

            String[] b = f.list(); //输出文件名的数组 xx
            for(int i = 0 ;i<b.length; i++){
                System.out.println(b[i]);
            }

      重命名或移动:

            String s1 = "d:\aaa.txt";
            String s2 = "d:\bbb.txt";
            File f1 =new File(s1);
            File f2 = new File(s2);
            f1.renameTo(f2);

      FileWriter用来把程序的内容写入其他文档:

            String a ="d:\bbb.txt";
            FileWriter w = new FileWriter(a,true);
            w.write("
    ");
            w.write("hahahhahahahhah ");
            w.close();

      Scanner用来把文档的内容读取到程序:

            StringBuilder sb = new StringBuilder();
            String s = "d:\bbb.txt";
            File f = new File(s);
            Scanner sc = new Scanner(f);
            while(sc.hasNextLine()){
                String str = sc.nextLine();
                sb.append(str);
                sb.append("
    ");
            }
            sc.close();
            System.out.println(sb.toString());

      读,FileInputStream 字节流:

            String a = "d:\bbb.txt";
            File f = new File(a);
            FileInputStream fis = new FileInputStream(f);
            byte[] b = new byte[(int)f.length()];
            fis.read(b);
            fis.close();

      写,FileOutputStream字节流:

            String s ="你愁啥,瞅你咋地";
            String url ="d:\bbb.txt";
            File f = new File(url);
            FileOutputStream fos = new FileOutputStream(f ,true);
            byte[] b = s.getBytes();
            fos.write(b);
            fos.close();

      FileInputStream,FileOutputStream,Scanner(用来读文本),FileWriter(用来写文本)是重中之重

     

     

  • 相关阅读:
    Revit 二次开发 几何
    Revit 二次开发 元素过滤练习
    Revit 二次开发 图元过滤
    Revit 二次开发 图元与参数
    扩展Revit的方式
    Revit API二次开发入门,完整学习流程,附源码
    Revit 二次开发学习视频
    在lldb调试中调用c++函数
    在lldb调试中调用c++函数
    lldb调试使用python脚本问题总结
  • 原文地址:https://www.cnblogs.com/claricre/p/6273080.html
Copyright © 2020-2023  润新知