18.6.5 存储和数据恢复

来源:互联网 发布:淘宝新手如何做推广 编辑:程序博客网 时间:2024/05/17 15:36

下边的示例展示了通过字节流写入文件, 然后再通过字节流读入, 结果保持了一致性. 这点很重要, 也就是说无论平台如何, 硬件如何, DataOutputStream输出的流都可以通过DataInputStream流正常读取.

package com.cnsuning.file;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class StoringAndRecoveringData {public static void main(String[] args) {String file = "D:\\test.txt";try {DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)));out.writeUTF("start");out.writeInt(11);out.writeDouble(11.5);out.writeBoolean(true);out.writeUTF("end");out.close();DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));System.out.println(in.readUTF());System.out.println(in.readInt());System.out.println(in.readDouble());System.out.println(in.readBoolean());System.out.println(in.readUTF());} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

特别的, 使用writeUTF时, JAVA使用特殊的UTF编码, 对ASCII字符使用一个字节编码, 对其它字符使用2-3个字节编码, 并使用前两位字节保存字符长度, 因为JAVA对UTF编码略有改动, 使用其它程序读取JAVA编写的UTF文件时需要特殊处理.

0 0
原创粉丝点击