• 2020.8.2 + 周报(4)


    一、今日学习内容      每周周报

      1、过滤(处理)流       

            通常字节流只具有读写字节内容的方法,它们只能在文件中读取或者向文件中写入字节,在实际开发中往往需要在文件中读取或写入各种类型的数据,如整型、布尔类型等数据,就必须先将其他类型的数据转换成字节数组后写入文件,或者从文件中读取到的字节数组转换成其他数据类型,这时就需要包装类,它提供了向各种输出流对象中写入各种类型数据的方法。

    (1) DataOutputStream
             对于DataOutputStream必须给它传一个输出流对象,完成类似DataOutputStream功能的类就是一个过滤流类或处理流类。
              DataOutputStream包装类的构造函数语法如下。

    public a DataOutputSt ream (OutputStream out)

              DataOutputStream的部分方法列表如表所示。

              

               示例:

    import java.io.DataOutputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    public class DataOutputStreamDemo {
        public static void main(String[] args)throws IOException {
            write();
        }
        public static void write()throws IOException{
            OutputStream os=new FileOutputStream("D:/Hello.txt");
            DataOutputStream dos=new DataOutputStream(os);
            dos.writeInt(123);
            dos.writeBoolean(true);
            dos.writeByte(34);
            dos.writeBytes("Hello");
            dos.writeChar(58);
            dos.writeChars("java");
            dos.writeDouble(20.0);
            dos.writeFloat(20f);
            dos.writeShort(31);
            dos.writeUTF("C++");
            dos.writeLong(13L);
            dos.flush();
            dos.close();
        }
    }

         

        (2)DataInputStream

    import java. io. DataInputStream;
    import java. io.FileInputStream;
    import java. io. IOException;
    import java.io. InputStream;
    public class DataIntputStreamDemo{
    public static void main(String[] args) throws IOException {
    read() ;
    }
    public static void read() throws IOException {
    InputStream in = new FileInputStream("D:/Hello.txt");
    DataInputStream dis =new DataInputStream(in) ;
    int a=dis.readInt() ;
    boolean flag = dis. readBoolean();
    byte b=dis.readByte();
    char c=dis.readChar();
    double d=dis.readDouble();
    float f=dis.readFloat();
    short s=dis.readShort ();
    long l=dis.readLong();
    dis.close();
    System.out.println(a);
    System.out.println(flag) ;
    System.out.println(b);
    System.out.println(c);
    System .out.println(d);
    System .out.println(f);
    System.out.println(s);
    System.out.println(l);
    }
    }

        

       2、内存操作流

            之前的文件操作流是以文件的输入和输出为主的,文件操作流的输出位置是硬盘,但如果将输入输出的位置改变成了内存,就称为内存操作流,使用ByteArrayInputStream 完成内存的输入操作,而使用ByteArrayOutputStream完成内存的输出操作。
            示例:使用内存操作流输出内容

    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    public class ByteOutputStreamDemo {
        public static void main(String[] args)throws IOException {
            outin();
        }
        public static void outin()throws IOException{
            String info="hello java";
            InputStream input=new ByteArrayInputStream(info.getBytes());
            OutputStream output=new ByteArrayOutputStream();
            int temp=0;
            while((temp=input.read())!=-1) {
                output.write(Character.toUpperCase((char)temp));
            }
            String str=output.toString();
            input.close();
            output.close();
            System.out.println(str);
        }
    }

           输出结果:HELLO JAVA

    二、遇到的问题

        对过滤流相关方法记不住,对内存操作流的用法也不是很清楚

    三、明日计划

       明日继续学习第12章

    收获:

         在过去一周学习了第八章对异常的处理以及第十二章用I/O进行数据处理的部分内容,对异常的处理方法:java异常处理的方法一般有两种,分别是使用try…catch…finally…和throws来操作,对每一个方法分别进行了学习,还学习了用log4j记录日常日志信息;学习了文件操作,流和流的分类,字符流,字节流,过滤流,内存操作流等相关知识。

    遇到的问题:

         对新学习的方法及相关用法不能记得很清楚,不熟悉

    下周计划:

        学习完第12章内容,用JAVA对c++的例题重新编写

  • 相关阅读:
    go 异常处理
    win10一行代码搭建本地html项目
    github搭建html网站到外网
    python生成动态个性二维码
    python+selenium通过加载用户配置实现免登陆
    python搭建本地共享文件服务器
    python画猫并打包成EXE文件
    python批量爬取猫咪图片
    解决-Chrome插件安装时程序包无效:"CRX_HEADER_INVALID"的错误
    移动自动化测试框架--openatx
  • 原文地址:https://www.cnblogs.com/wmdww/p/13423247.html
Copyright © 2020-2023  润新知