输入输出处理

输入输出处理

  • java的输入输出是由一组类来实现的。能读取数据的对象叫输入流,能向其写入数据的对象叫输出流
    * 一、File类
    * File类与InputStream / OutputStream类同属于一个包,它不允许访问文件内容。
    File类主要用于命名文件、查询文件属性和处理文件目录。
    * 二、 InputStream类和 OutputStream类 (输入输出流)
    * 1、它们都是抽象类,不能创建对象;2、必须通过其子类实现实例化。
    * 1)InputStream类的常用方法
    * 1. public abstract int read( ):读取一个byte的数据,返回值是高位补0的int类型值。
    2. public int read(byte b[ ]):读取b.length个字节的数据放到b数组中。返回值是读取的字节数。该方法实际上是调用下一个方法实现的。
    3. public int read(byte b[ ], int off, int len):从输入流中最多读取len个字节的数据,存放到偏移量为off的b数组中。
    * 4. public int available( ):返回输入流中可以读取的字节数。注意:若输入阻塞,当前线程将被挂起。
    5. public long skip(long n):忽略输入流中的n个字节,返回值是实际忽略的字节数。
    6. public int close( ) :关闭输入流。
    *2)OutputStream类的常用方法
    * 1. public void write(byte b[ ]):将参数b中的字节写到输出流。
    2. public void write(byte b[ ], int off, int len) :将参数b的从偏移量off开始的len个字节写到输出流。
    3.  public abstract void write(int b) :先将int转换为byte类型,把低字节写入到输出流中。
    * 4.  public void flush( ) : 将数据缓冲区中数据全部输出,并清空缓冲区。
    5.  public void close( ) : 关闭输出流并释放与流相关的系统资源。
    ps:1. 上述各方法都有可能引起异常。
    2. InputStream和OutputStream都是抽象类,不能创建这种类型的对象。
    *三、FileInputStream类 和FileOutputStream类 (文件输入输出流)
    *FileInputStream类是InputStream类的子类,用来处理以文件作为数据输入源的数据流。
    *创建一个文件流对象有两种方法:
    *方式1:
    File fin=new File(“d:/abc.txt”);
    FileInputStream in=new FileInputStream(fin);
    方式2:
    FileInputStream in=new
    FileInputStream(“d: /abc.txt”);
    *(FileOutputStream类似)
    *ps:1、在向文件中写数据时,若文件已经存在,则覆盖存在的文件;若文件不存在,则自动创建一个文件。
    2、当流的读/写操作结束时,应调用close方法关闭流。
    *四、 DataInputStream和DataOutputStream类 (数据输入输出流)
    *DataInputStream类对象可以读取各种类型的数据,而DataOutputStream类对象可以写各种类型的数据;
    创建这两类对象时,必须使新建立的对象指向构造函数中的参数对象。例如:
    *FileInputStream in=new FileInputStream(“d:/abc.txt”);
    DataInputStream din=new DataInputStream(in);
    *1)DataInputStream类的常用方法
    *1.public final int skipBytes(long n): 跳过输入流中n个字节的数据。
    2.public final byte readByte( ):从输入流中读取1个字节的数据。
    3.public final char readChar( ):从输入流中读取1字符的数据。
    4.public final int readInt( ):从输入流中读取4字节的数据。
    *5.public final long readLong( ):从输入流中读取8字节的数据。
    6.public final String readLine( ):从数据输入流中读取一行,并且包括换行符。
    7.public final void readFully(byte b[ ]):从数据输入流中读取b.length 个字节的数据,读到b数组中。
    *2)DataOutputStream类 的常用方法
    *1. public final int size( ):返回写到输出流中的字节数。
    2. public final void writeBytes(String s):将字符串s中的字符写到输出流中,写时忽略高8位。
    3. public final void writeChars(String s):将字符串s中的字符写到输出流中。
    4. public final void writeInt(int v):将参数v按4个字节的形式写到输出流中。
    *五、 RandomAccessFile类 (随机访问流)
    *RandomAccessFile类实现了DataOutput和DataInput接口,可用来读写各种数据类型。它有两个构造函数:
    *1. public RandomAccessFile( String name, String mode )
    2. public RandomAccessFile( File file, String mode )
    mode的取值只能为“r”,或 “rw”。若是其它模式则抛出异常IllegalArgumentException。
    *六、ObjectOutputStream类和ObjectInputStream类(对象输入输出流)
    *ObjectOutputStream类的writeObject( )方法可以写入对象,数组字符串是对象,但基本类型的变量,必须通过DataOutput中的writeInt方法写入。 例如
    *ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(“t.tmp”));//与数据流的构造函数形式差不多。
    out.writeInt(12345);
    out.writeObject(“Today”); // 写对象
    out.writeObject(new Date( )); // 写对象
    * out.flush(); //刷新缓冲区
    * out.close();
    * 七、对象序列化
    * 序列化机制允许将实现序列化的Java对象转换成字节序列 ,这些字节序列可以被保存在磁盘上,或者通过网络传输,以备以后重新恢复成原来的对象。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值