• Java暑期学习第二十六天日报


    一、今日学习内容:

    今天学习了12.2.2 过滤流、12.2.3内存操作流的内容。

    二、遇到的问题:

     无

    三、明日计划:

    明天计划学习12.2.4缓冲流、12.2.5Scanner类、12.2.6对象序列化与反序列化的内容

    今日学习的具体内容如下:

    1.过滤流

    整型、布尔型数据需要转换为字节数组后写入文件,或者从文件中读取到的字节数组转换为其他类型数据,这时候需要包装类,它提供了向各种输出流对象写入各种类型数据的方法。

    (1)DataOutputStream

    对于DataOutputStream必须给它传一个输出流对象,完成类似DataOutputStream功能的类就是一个过滤流类或处理流类。

    DataOutputStream构造函数语法:

     

    DataOutputStream的常见方法:

    实例——使用DataOutputStream写入内容

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

    (2)DataInputstream

    实例——用DataInputStream读数据

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

    测试截图:

     

    2.内存操作流

    (1)输出位置

    文件操作流 文件的输出输入流的输出位置是硬盘
    内存操作流 输入输出位置是内存,使用ByteArrayInputStream完成内存的输入操作,使用ByteArrayOutputStream完成内存的输出操作

    (2)实例——使用内存操作流输出内容

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

    测试截图:

  • 相关阅读:
    Revit扩展组件介绍之_AdWindow
    PropertyGrid使用总结5 UITypeEditor
    PropertyGrid使用总结4 IcustomTypeDescriptor
    PropertyGrid使用总结3 Descriptor
    PropertyGrid使用总结2 TypeConverter
    JavaScript之Ajax学习
    JavaScript正则表达式
    JavaScript面向对象学习笔记
    node入门学习1
    JavaScript随笔8
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/13412227.html
Copyright © 2020-2023  润新知