DataInputStream 数据输入流
DataOutputStream 数据输出流
步骤1:直接进行字符串的读写
步骤2:练习-向文件中写入两个数字,然后把这两个数字分别读取出来
步骤3:答案-向文件中写入两个数字,然后把这两个数字分别读取出来
步骤 1 : 直接进行字符串的读写
使用数据流的writeUTF()和readUTF() 可以进行数据的格式化顺序读写
如本例,通过DataOutputStream 向文件顺序写出 布尔值,整数和字符串。 然后再通过DataInputStream 顺序读入这些数据。
注: 要用DataInputStream 读取一个文件,这个文件必须是由DataOutputStream 写出的,否则会出现EOFException,因为DataOutputStream 在写出的时候会做一些特殊标记,只有DataInputStream 才能成功的读取。
![直接进行字符串的读写](https://i-blog.csdnimg.cn/blog_migrate/2df2dd137ba3cc7c85211d7b101a6928.png)
package stream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class TestStream { public static void main(String[] args) { write(); read(); } private static void read() { File f = new File( "d:/lol.txt" ); try ( FileInputStream fis = new FileInputStream(f); DataInputStream dis = new DataInputStream(fis); ){ boolean b= dis.readBoolean(); int i = dis.readInt(); String str = dis.readUTF(); System.out.println( "读取到布尔值:" +b); System.out.println( "读取到整数:" +i); System.out.println( "读取到字符串:" +str); } catch (IOException e) { e.printStackTrace(); } } private static void write() { File f = new File( "d:/lol.txt" ); try ( FileOutputStream fos = new FileOutputStream(f); DataOutputStream dos = new DataOutputStream(fos); ){ dos.writeBoolean( true ); dos.writeInt( 300 ); dos.writeUTF( "123 this is gareen" ); } catch (IOException e) { e.printStackTrace(); } } } |
更多内容,点击了解: https://how2j.cn/k/io/io-datastream/350.html