Java IO流 DataOutputStream、DataInputStream的基本使用

            DataOutputStream、DataInputStream的基本使用

  DataInputStream数据输入流允许应用程序以独立于机器的方式从底层输入流读取原始Java数据类型。应用程序使用数据输出流来写入稍后可以被数据输入流读取的数据。DataInputStream对于多线程访问来说不一定是安全的。 线程安全是可选的,由程序员自行选择。

  DataOutputStream数据输出流使应用程序以便携式方式将原始Java数据类型写入输出流。然后应用程序可以使用数据输入流来读取数据。以下例子是DataOutputStream和DataInputStream的简单使用。首先是通过数据输出流DataOutputStream在指定文件写入数据,然后再通过DataInputStream进行读取。FileInputStream的使用可参考https://www.cnblogs.com/jhtian/p/14110083.html

测试代码:

package com.tianjh.io.outputstream;

import java.io.*;

/**
 * Created on 2020/12/10
 * A data output stream lets an application write primitive Java data
 * types to an output stream in a portable way. An application can
 * then use a data input stream to read the data back in.
 *
 * 数据输出流使应用程序以便携式方式将原始Java数据类型写入输出流。
 * 然后应用程序可以使用数据输入流来读取数据。
 * 
 */
public class DataOutputStreamDemo {
    public static void main(String[] args) {
        try {
            String  sourceFile = "D:/data.txt";

            /*
             * $DataOutputStream
             * A data output stream lets an application write primitive Java data
             * types to an output stream in a portable way. An application can
             * then use a data input stream to read the data back in.
             *
             * 数据输出流使应用程序以便携式方式将原始Java数据类型写入输出流,
             * 然后应用程序可以使用数据输入流来读取数据。
             */
            // 1.使用DataOutputStream数据输出流写入数据到指定文件中
            FileOutputStream fos = new FileOutputStream(sourceFile);
            DataOutputStream dos = new DataOutputStream(fos);

            // writeInt 写入int类型
            dos.writeInt(123);

            // writeDouble 写入Double 类型
            dos.writeDouble(4.56);

            // writeUTF 使用 modified UTF-8编码以机器无关的方式将字符串写入基础输出流。
            dos.writeUTF("hello");
            dos.close();
            fos.close();

            /*
             * $DataInputStream
             * A data input stream lets an application read primitive Java data
             * types from an underlying input stream in a machine-independent
             * way. An application uses a data output stream to write data that
             * can later be read by a data input stream.
             * <p>
             * DataInputStream is not necessarily safe for multithreaded access.
             * Thread safety is optional and is the responsibility of users of
             * methods in this class.
             *
             * 数据输入流允许应用程序以独立于机器的方式从底层输入流读取原始Java数据类型。
             * 应用程序使用数据输出流来写入稍后可以被数据输入流读取的数据。
             * DataInputStream对于多线程访问来说不一定是安全的。 线程安全是可选的,由程序员自行选择
             */
            // 2.使用DataInputStream数据输入流从指定文件读取数据
            FileInputStream fis = new FileInputStream(sourceFile);
            DataInputStream dis = new DataInputStream(fis);

            System.out.println(dis.readInt());
            // expected output: 123
            System.out.println(dis.readDouble());
            // expected output: 4.56
            System.out.println(dis.readUTF());
            // expected output: hello
            dis.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述列子输出结果为:

  123
  4.56
  hello

 

原文地址:https://www.cnblogs.com/jhtian/p/14116029.html