Java基本数据类型的输入输出

Java基本数据类型的输入输出
 
Java基本数据类型输入输出不常用,但在一些加密解密方面,二进制文件的解析读写方面还是大有用武之地。比如,为了保护软件的版权,需要一个通过一定算法生成一个licenses文件,然以在软件运行的时候读取licenses文件,看是否授权成功。这个时候,可以用
java.io.DataInputStream、java.io.DataOutputStream
这两个类完成二进制licenses的生成和解析。
 
DataInputStream 数据输入流允许应用程序以与机器无关方式从基础输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。
 
DataOutputStream 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。
 
有关详细的API文档可以参看Java API Doc。
 
下面给简单的例子:
import java.io.*;

/**
* Java读取解析二进制数据
*
* @author leizhimin 2008-10-14 12:42:51
*/

public class TestLicenses {
         public static void main(String[] args) throws IOException {
                testDataOutputStream();
                testDataInputStream();
        }

         /**
         * 生成二进制数据文件
         *
         * @throws IOException
         */

         public static void testDataOutputStream() throws IOException {
                DataOutputStream dos = new DataOutputStream( new FileOutputStream( "C:\\dos.dat"));
                dos.writeBoolean( true);
                dos.writeByte('a');
                dos.writeDouble(234.44);
                dos.writeFloat(11.23f);
                dos.writeLong(555L);
                dos.writeInt(333);
                dos.writeShort(23);
                dos.writeUTF( "UTFString");
                dos.close();
        }

         /**
         * 解析二进制数据文件
         *
         * @throws IOException
         */

         public static void testDataInputStream() throws IOException {
                DataInputStream dis = new DataInputStream( new FileInputStream( "C:\\dos.dat"));
                System.out.println(dis.readBoolean());
                System.out.println(( char) dis.readByte());
                System.out.println(dis.readDouble());
                System.out.println(dis.readFloat());
                System.out.println(dis.readLong());
                System.out.println(dis.readInt());
                System.out.println(dis.readShort());
                System.out.println(dis.readUTF());
                dis.close();
        }
}
 
运行结果:
true
a
234.44
11.23
555
333
23
UTFString

Process finished with exit code 0
 
运行结果表名,解析完全正确。
 
这里要注意一点,对于字符串的写入和解析,应该选择writeUTF()和readUTF()两个方法。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值