package com.syp.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;
/* @comany 阿斯达克(深圳)信息技术有限公司
* @author steven.wu
* @since 2009.8.11
* @description read and write stream for binary file。
*/
public class BinaryReadWrite {
private DataInputStream dis=null;
private DataOutputStream dos=null;
private String s_FilePath="d:/bin.dat";
private byte[] m_datapadding = { 0x00 }; //填充空白,以补足字节位数.
public BinaryReadWrite() {
// TODO Auto-generated constructor stub
init();
}
private void init(){
try{
if(!new File(s_FilePath).exists()){
new File(s_FilePath).createNewFile();
}
dis=new DataInputStream(new FileInputStream(new File(s_FilePath)));
dos=new DataOutputStream(new FileOutputStream(new File(s_FilePath)));
}catch(Exception e){
e.printStackTrace();
}
}
public void writeBinaryStream(){
try{
if(dos!=null){
for(int i=0;i<2;i++){
//write boolean value.
dos.writeBoolean(true);
//write a char value.
char c='a';
dos.writeChar((int)c);
Double d=12.567d;
dos.writeDouble(d);
Float f=56.782f;
dos.writeFloat(f);
int k=105;
dos.writeInt(k);
long l=98765l;
dos.writeLong(l);
short st=12;
dos.writeShort(st);
String cs="Java读写二进制文件";
String cs1="二进制文件";
if(i==0){
dos.writeUTF(cs);
}else{
dos.writeUTF(cs1);
}
dos.write(m_datapadding);
}
dos.flush();
dos.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
public void readBinaryStream(){
try{
if(dis!=null){
while(dis.available()>0){
System.out.println(dis.available());
System.out.println(dis.readBoolean());
char c=(char)dis.readChar();
System.out.println(c);
System.out.println(dis.readDouble());
System.out.println(dis.readFloat());
System.out.println(dis.readInt());
System.out.println(dis.readLong());
System.out.println(dis.readShort());
System.out.println(dis.readUTF());
System.out.println(dis.read(m_datapadding));
}
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
BinaryReadWrite bin=new BinaryReadWrite();
bin.writeBinaryStream();
bin.readBinaryStream();
}
}
分享到:
相关推荐
在这个Java二进制运算器中,我们将深入探讨这些基本操作以及如何在代码中实现它们。 1. **二进制数系统**: 二进制是计算机科学中的基础,只有两个数字0和1。所有的计算都在这个系统下进行,因为计算机内部处理的是...
java 二进制,位左移,位右移PPT java 二进制,位左移,位右移 java 二进制,位左移,位右移
### Java十进制转换二进制 在计算机科学领域,数据表示和转换是十分重要的基础知识之一。本篇文章将深入解析一个使用Java语言编写的程序,该程序能够将十进制正数和负数转换为二进制形式。通过分析代码逻辑、算法...
本篇将详细阐述如何在Java中进行二进制、十进制和十六进制之间的转换,以及字节数组与十六进制字符串的相互转换。 一、进制转换 1. **二进制转十进制**:Java中可以使用`Integer.parseInt()`或`Long.parseLong()`...
在Java编程语言中,将二进制文件转换为文本文档通常涉及到字符编码的理解和处理。二进制文件可以包含任何类型的数据,如图像、音频、视频或纯文本,但以非可读格式存储。而文本文档通常使用特定的字符编码(如ASCII...
JAVA二进制读写库(读取)
/* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */
C++,java读写二进制文件方法介绍.pdf java从第九页开始
JAVA二进制流转PDF 1 http接口接收到二进制流,如下,转换成Pdf文件保存到本地 %PDF-1.4 %���� 3 0 obj ...
Java 二进制文件读写的demo,可以提供给需要的朋友使用
整数转二进制补码的源代码 提供了两种方法:一种调用java api中的方法。另一种是自己实现的。
在Java编程中,二进制、字节数组、字符、十六进制和BCD(Binary-Coded Decimal,二进制编码的十进制)编码转换是常见的数据处理任务。以下将详细介绍这些概念以及如何在Java中进行相关操作。 1. **二进制与十六进制...
Java权限设置和字符、二进制转换 Java权限设置是一种常用的权限控制方法,用于控制用户对系统资源的访问权限。在Java中,我们可以使用位运算来实现权限控制。下面是Java权限设置的知识点: 1. 权限控制算法:我们...
输入一个整十进制数n,把它转化为二进制,小数部分还没有考虑。。。
Java进制转换 正整数的十进制转换二进制 将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。 由于计算机...
在深入探讨“Java二进制转化界面”的主题之前,我们首先需要理解几个核心概念:Java、二进制以及用户界面(UI)。Java是一种广泛使用的高级编程语言,以其平台独立性、面向对象特性和丰富的类库而著称。二进制是...
- 二进制数的算术运算:例如,30 - 70的计算过程实际上是将30转换为二进制,再将70的负数也转换为二进制,然后进行二进制的加法运算。 6. 进制转换的计算方法 - 位权表示法:采用2的幂次方表示法来定义不同进制...
任意输入一个十进制整数,包括正数负数,通过程序实现可以输出相应的二进制编码
在Java编程语言中,将十进制数转换为二进制或其他任意进制是一项常见的任务。这主要涉及到数字系统的基础理论以及Java中的字符串处理和数学运算。以下将详细讲解如何实现这一功能。 首先,让我们从最基础的二进制...
### 二进制比较与反二进制比较 #### 知识点一:二进制比较的历史背景与发展 - **BMAT(1999)**:这是最早期的二进制比较方法之一,它主要依赖于符号文件,尤其是微软的二进制文件。该方法通过对函数内的块进行...