第八次总结 文件操作

  1. 基本数据类型的输入输出流
  2. 对象输入和输出流
  3. 字符流
  4. 统计String.java源文件总共有多少行? 其中多少行注释?多少行源代码?

1.基本数据类型的输入输出流

  1. DataOutputStream 基本数据类型的输出流
  2. DataInputStream 基本数据类型的输入流

2..对象输入和输出流

  1. ObjectOutputStream 对象输出流
  2. ObjectInputStream 对象输入流

对象不可以直接写到数据流中
如果需要将对象写到数据流中,就必须要将对象序列化
序列化就是将对象转换成一个可以写到流中的过程

如何序列化?
实现序列化接口Serializable

反序列化
将对象数据从数据流中的有序数据变成对象的过程


3.字符流

字符输入流
Reader
InputStreamReader 字节到字符的转换输入流

 String path="D:\\aa\\aa.log";

        //创建文件字节输入流
        FileInputStream fis = new FileInputStream(path);

        //将字节流转换成字符流
        InputStreamReader reader = new InputStreamReader(fis);

        //读取一个字符
        int t = reader.read();
        while(t!=-1){
            char c  =(char)t;
            System.out.print(c);
            t = reader.read();
        }

        reader.close();
        fis.close();

FileReader 文件字符输入流

 String path="D:\\aa\\aa.log";

        //创建文件字符输入流
        FileReader reader = new FileReader(path);

        int t = reader.read();
        while (t!=-1){
            char c = (char)t;
            System.out.print(c);
            t = reader.read();

        }
        reader.close();


BufferedReader 缓冲字符输入流

String path="D:\\aa\\aa.log";

        //创建文件字符输入流
        FileReader reader = new FileReader(path);
        //包装成缓冲字符流
        BufferedReader br = new BufferedReader(reader);

        //读取一行数据
        String str = br.readLine();
        while(str!=null){
            System.out.println(str);
            str  =br.readLine();
        }

        br.close();
        reader.close();

字符输出流
Writer
OutputStreamWriter 字节到字符的转换输出流
FileWriter 文件字符输出流
BufferedWriter 缓冲字符输出流


4.统计String.java源文件总共有多少行? 其中多少行注释?多少行源代码?

    public static void main(String[] args) throws  Exception{
        int sum=0;
        int zhushi=0;
        int code=0;
        int kong=0;


        String path = "D:\\11\\a.txt";

        FileReader fr = new FileReader(path);
        BufferedReader br = new BufferedReader(fr);

        String str = br.readLine();
        while(str!=null){
            sum++;//总行数
            str=str.trim();
            if(str.startsWith("/")||str.startsWith("*")){
                zhushi++;
            }else if(str.length()==0){
                kong++;
            }else{
                code++;


            }

            str = br.readLine();

        }

        System.out.println("总行数:"+sum);
        System.out.println("注释数:"+zhushi);
        System.out.println("代码数:"+code);
        System.out.println("空行数:"+kong);
    }

猜你喜欢

转载自www.cnblogs.com/zxxb/p/13374845.html