文章目录
前言
一、数据输入输出流是什么?
数据输入输出流是用于在程序中读取和写入数据的基本机制。它们是一种操作数据的方式,允许程序与外部设备(如文件、网络、键盘、屏幕等)进行交互。(需要导入java.io包)
数据输入流(DataInputStream)用于从外部设备读取数据,并将其转化为程序可以处理的数据格式。常见的数据输入流包括输入文件流(FileInputStream)、输入字符流(FileReader)和标准输入流(System.in)等。
数据输出流(DataOutputStream)用于将程序中的数据写入到外部设备。常见的数据输出流包括输出文件流(FileOutputStream)、输出字符流(FileWriter)和标准输出流(System.out)等。
二、使用方法
1.DataInputStream类
构造方法:
new DataInputStream(InputStream in);
//in参数为被包装的字节输入流
方法 | 功能描述 |
readByte() | 从输入流中读取一个字节,并将其作为有符号的byte值返回 |
readUnsignedByte() | 从输入流中读取一个字节,并将其作为无符号的byte值返回 |
readChar() | 从输入流中读取两个字节,并将其作为char值返回 |
readShort() | 从输入流中读取两个字节,并将其作为有符号的short值返回 |
readUnsignedShort() | 从输入流中读取两个字节,并将其作为无符号的short值返回 |
readInt() | 从输入流中读取四个字节,并将其作为有符号的int值返回 |
readLong() | 从输入流中读取八个字节,并将其作为有符号的long值返回 |
readFloat() | 从输入流中读取四个字节,并将其作为float值返回 |
readDouble() | 从输入流中读取八个字节,并将其作为double值返回 |
readUTF() | 从输入流中读取一个UTF-8编码的字符串,并将其作为String对象返回 |
2.DataOutputStream类
构造方法:
new DataOutputStream(OutputStream out);
//out参数为被包装的字节输出流
方法 | 功能描述 |
writeUTF(String s) | 将一个UTF-8编码的字符串写入此流 |
writeBoolean(boolean b) | 将一个boolean值写入此流 |
writeByte(int v) | 将一个字节写入此流 |
writeBytes(String s) | 将字节串写入此流 |
writeShort(int s) | 将一个short值写入此流 |
writeChar(int v) | 将一个字节写入此流 |
writeChars(String s) | 将字符串写入此流 |
writeInt(int i) | 将一个int值写入此流 |
writeFloat(float f) | 将一个float值写入此流 |
writeLong(long l) | 将一个long值写入此流 |
writeDouble(double d) | 将一个double值写入此流 |
3.实操展示
项目:使用数据输入输出流,向show.txt文件输入内容,同时将其输入完后的show.txt文件内容返回至控制台中。
import java.io.*;
public class DataStream {
public static void main(String[] args) {
File file = new File("show.txt");
FileOutputStream out = null;
DataOutputStream out2 = null;
FileInputStream in = null;
DataInputStream in2 =null;
try {
out = new FileOutputStream(file);
out2 = new DataOutputStream(out);
out2.writeUTF("一生二,二生三,三生万物");
out2.writeInt(1024);
in = new FileInputStream(file);
in2 = new DataInputStream(in);
System.out.println(in2.readUTF());
System.out.println(in2.readInt());
} catch (Exception e) {
e.printStackTrace();
}finally{
if(out!=null){
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(out!=null){
try {
out2.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(out!=null){
try {
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(out!=null){
try {
in2.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
运行结果:
保存在文件中的信息
返回终端的信息
总结
以上就是数据输入输出流的简单使用,输入输出流提供的方法可以使我们快速便捷地将数据写入文件或读取文件信息。