当前位置: 首页 > 教程 > Java IO流 >

Java DataInputStream

精华
小牛编辑
101浏览
2023-03-14

1 什么是Java DataInputStream

Java DataInputStream 类允许应用程序以独立于机器的方式从输入流中读取原始数据。

Java应用程序通常使用数据输出流来写入数据,这些数据以后可以由数据输入流读取。

2 Java DataInputStream的语法

public class DataInputStream extends FilterInputStream implements DataInput 

3 Java DataInputStream的方法

方法 描述
int read(byte[] b) 用于从输入流中读取字节数。
int read(byte[] b, int off, int len) 用于从输入流中读取len字节的数据。
int readInt() 用于读取输入字节并返回int值。
byte readByte() 用于读取和返回一个输入字节。
char readChar() 用于读取两个输入字节并返回一个char值。
double readDouble() 用于读取八个输入字节并返回一个双精度值。
boolean readBoolean() 用于读取一个输入字节,如果字节不为零,则返回true,如果字节为零,则返回false。
int skipBytes(int x) 用于跳过输入流中x个字节的数据。
String readUTF() 用于读取使用UTF-8格式编码的字符串。
static String readUTF(DataInput in) 用于从流中读取以经修改的UTF-8格式编码的Unicode字符串的表示形式。然后将这个字符串作为字符串返回。
void readFully(byte[] b) 用于从输入流中读取字节并将其存储到缓冲区数组中。
void readFully(byte[] b, int off, int len) 用于从输入流中读取len个字节。
float readFloat() 用于读取四个输入字节并返回一个浮点值。
long readLong() 用于读取八个输入字节,并返回一个long值。
short readShort() 用于读取两个输入字节并返回一个short值。
int readUnsignedByte() 用于读取一个输入字节,将其零扩展以键入int类型,然后返回结果,因此其范围为0到255。
int readUnsignedShort() 用于读取两个输入字节,并返回一个介于0到65535之间的int值。

4 Java DataInputStream的例子

在此示例中,我们从文件test.txt文件中读取数据。

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java DataInputStream的例子
 */
import java.io.*;

public class Demo {

    public static void main(String[] args) throws IOException {
        InputStream input = new FileInputStream("D:\\xnip\\test.txt");
        DataInputStream inst = new DataInputStream(input);
        int count = input.available();
        byte[] ary = new byte[count];
        inst.read(ary);
        for (byte bt : ary) {
            char k = (char) bt;
            System.out.print(k+"-");
        }
    }
}

test.txt:

JAVA

输出结果为:

J-A-V-A-