Java DataInputStream
类
原文:https://www.studytonight.com/java-file-io/java-datainputstream-class
在本教程中,我们将学习 Java 中的DataInputStream
。这个类从数据流中读取原始数据,而不依赖于机器。Java 应用通常使用DataOutpuStream
来写数据,这些数据以后可以被DataInputStream
读取。
句法
这是DataInputStream
类的内部语法声明。
public class DataInputStream extends FilterInputStream implements DataInput
方法
方法 | 描述 |
---|---|
int read(byte[] b) |
它用于从输入流中读取字节数。 |
int read(byte[] b, int off, int len) |
它用于从输入流中读取**len** 字节的数据。 |
int readInt() |
它用于读取输入字节并返回一个 int 值。 |
byte readByte() |
它用于读取和返回一个输入字节。 |
char readChar() |
它用于读取两个输入字节并返回一个字符值。 |
double readDouble() |
它用于读取八个输入字节并返回一个双精度值。 |
boolean readBoolean() |
它用于读取一个输入字节,如果字节非零则返回真,如果字节为零则返回假。 |
int skipBytes(int x) |
它用于跳过输入流中的x 字节数据。 |
String readUTF() |
它用于读取使用 UTF-8 格式编码的字符串。 |
void readFully(byte[] b) |
它用于从输入流中读取字节,并将其存储到缓冲区数组中。 |
void readFully(byte[] b, int off, int len) |
它用于从输入流中读取**len** 字节。 |
从文件中读取数据的 DataInputStream 类的示例
在下面给出的程序中,我们使用DataInputStream
类的read()
方法从给定文件myfile.txt
中读取数据。首先,我们将使用available()
方法计算文件中可读取的字节数,并创建一个该大小的新字节数组。现在,我们需要使用 read()方法从文件中读取数据,然后逐个打印。
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
FileInputStream file = new FileInputStream("E:\\studytonight\\myfile.txt");
DataInputStream inst = new DataInputStream(file);
int count = file.available();
byte[] array = new byte[count];
inst.read(array);
for (byte b : array) {
char ch = (char) b;
System.out.print(ch);
}
}
}
你好,今晚学习
我的文件.txt
Hello Studytonight
读写原始数据的示例:
下面的例子对于DataInputStream
类和DataOutputStream
类的实际使用都非常重要,这里我们首先将数据写入一个文件,然后再次读取该数据。当我们存储数据时,它不会是人类可读的形式,但是我们可以使用DataInputStream
以原始类型正确地读取它。
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream("E:\\studytonight\\myfile.txt"));
dataOutputStream.writeInt(45);
dataOutputStream.writeFloat(98.7F);
dataOutputStream.writeLong(123456);
dataOutputStream.close();
DataInputStream dataInputStream =new DataInputStream(new FileInputStream("E:\\studytonight\\myfile.txt"));
int intData = dataInputStream.readInt();
float floatData = dataInputStream.readFloat();
long longData = dataInputStream.readLong();
dataInputStream.close();
System.out.println("int data: " + intData);
System.out.println("float data: " + floatData);
System.out.println("long data: " + longData);
}
}
int 数据:45 float 数据:98.7 long 数据:123456
我的文件.txt
-BÅff â@
结论
在本教程中,我们学习了 Java 中的 DataInputStream 类及其方法。这个类从数据流中读取原始数据,而不依赖于机器。