• Java IO ---学习笔记(数据流)


    数据流:

    接口 DataInput 和 DataOutput,设计了一种较为高级的数据输入输出方式:除了可处理字节和字节数组外,还可以处理 int、float、boolean等基本数据类型,这些数据在文件中的表示方式和它们在内存中的一样,无须转换,如 read(), readInt(), readByte()...; write(), writeChar(), writeBoolean()...此外,还可以用 readLine()方法读取一行信息。

    方法:

    方法返回值说明
    readBoolean() boolean
    readByte() byte
    readShort() short
    readChar() char
    readInt() int
    readLong() long
    readDouble() double
    readFloat() float
    readUnsignedByte() int
    readUnsignedShort() int
    readFully(byte[] b) void 读满字节数组,不同于 InputStream。read
    reaFully(byte[] b, int off,int len) void 读满指定长度,不同于 InputStream.read
    skipBytes(int n) int 与 InputStream.skip 等价
    readUTF() String 安装 UTF-8 形式从输入中读取字符串
    readLine() String 按回车( )换行( )为分割符读取一行字符串,不完全支持 UNICODE
    writeBoolean(boolean v) void
    writeByte(int v) void
    writeShort(int v) void
    writeChar(int v) void
    writeInt(int v) void
    writeLong(long v) void
    writeFloat(float v) void
    writeDouble(double v) void
    write(byte[] b) void 与 OutputStream.write 同义
    write(byte[] b, int off, int len) void 与OutputStream.write 同义
    write(int b) void 与OutputStream.write 同义
    writeBytes(String s) void 只输出每个字符的低8位;不完全支持 UNICODE
    writeChars(String s) void 每个字符在输出中都占两个字节

      数据流类 DateInputStream 和 DataOutputStream 的处理对象除了是字节或字节数组外,还可以实现对文件的不同数据类型的读写:

    1. 分别实现了 DataInput 和 DataOutput 接口
    2. 在提供字节流的读写手段同时,以统一的形式向输入流中写入 boolean,int,long,double 等基本数据类型,并可以再次把基本数据类型的值读取回来。
    3. 提供了字符串读写的手段

      数据流可以连接一个已经建立好的数据对象,例如网络连接、文件等。数据流可以通过如下方式建立:

    FileInputStream fis = new FileInputStream("file1.txt");
    FileOutputStream fos = new FileOutputStream("file2.txt");
    DataInputStream dis = new DataInputStream(fis);
    DataOutputStream dos = new DataOutputStream(fos);

    接下来我们通过具体的代码,看一看它的用法吧:

    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class DataStream {
    
        public static void main(String[] args) throws IOException{
            // TODO Auto-generated method stub
            //向文件 a.txt 写入
            FileOutputStream fos = new FileOutputStream("a.txt");
            DataOutputStream dos = new DataOutputStream(fos);
            try {
                dos.writeBoolean(true);
                dos.writeByte((byte)123);
                dos.writeChar('J');
                dos.writeDouble(3.1415926);
                dos.writeFloat(2.122f);
                dos.writeInt(123);
            }
            finally {
                dos.close();
            }
            //从文件 a.txt 读出
            FileInputStream fis = new FileInputStream("a.txt");
            DataInputStream dis = new DataInputStream(fis);
            try {
                System.out.println("	" + dis.readBoolean());
                System.out.println("	" + dis.readByte());
                System.out.println("	" + dis.readChar());
                System.out.println("	" + dis.readDouble());
                System.out.println("	" + dis.readFloat());
                System.out.println("	" + dis.readInt());
            }
            finally {
                dis.close();
            }
        }
    
    }
  • 相关阅读:
    Android 博客园客户端 (六) OnItemLongClickListener for Blog, News and Comment
    Android 博客园客户端 (五) 查看评论、搜索博主
    Android 博客园客户端 (四) 基本功能完成(博客列表和内容、新闻列表和内容、推荐博主)
    Android 博客园客户端 (三) 博客列表和内容显示
    Android 博客园客户端 (二) 新界面&部分功能
    Android UI 之 ListView
    Git 客户端基本配置
    Android 博客园客户端 (一) 基本界面
    性能优化的心得
    重构
  • 原文地址:https://www.cnblogs.com/silianbo/p/4666432.html
Copyright © 2020-2023  润新知