package 处理流;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Demo02 {
public static void main(String[] args) throws IOException{
read(write());
}
//把数据+类型写到字节数组里
public static byte[] write()throws IOException
{
byte[] b2=null;
ByteArrayOutputStream dos=new ByteArrayOutputStream();
DataOutputStream out=new DataOutputStream(
new BufferedOutputStream(dos));
double point=3.14159;
int num=2628;
String str="我是汪洋";
String str02="刘林是我同学";
out.writeDouble(point);
out.writeInt(num);
out.writeUTF(str);
out.writeUTF(str02);
dos.flush();
b2=dos.toByteArray();
return b2;
}
//从字节数组中获得数据+类型
public static void read(byte[] b2)throws IOException
{
DataInputStream into=new DataInputStream(
new BufferedInputStream(
new ByteArrayInputStream(b2)));
System.out.println("point="+into.readDouble());
System.out.println("num="+into.readInt());
System.out.println("str="+into.readUTF());
System.out.println("str02="+into.readUTF());
}
}
out.writeUTF(str02);
out.flush();//加上这句,把流输出到dos
dos.flush();
粘贴的时候重复了一片,大神们不要介意
请粘贴异常信息,你这样总不能让我拿去运行看看吧,浪费时间
用ultraedit看下。文件写入正确了么
将这句修改了就好了:
DataOutputStream out=new DataOutputStream(dos);
然后就正常了,完整代码:
public static void main(String []args){
try {
read(write());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//把数据+类型写到字节数组里
public static byte[] write()throws IOException
{
byte[] b2=null;
ByteArrayOutputStream dos=new ByteArrayOutputStream();
DataOutputStream out=new DataOutputStream(dos);
double point=3.14159;
int num=2628;
String str="我是汪洋";
String str02="刘林是我同学";
out.writeDouble(point);
out.writeInt(num);
out.writeUTF(str);
out.writeUTF(str02);
dos.flush();
b2=dos.toByteArray();
return b2;
}
//从字节数组中获得数据+类型
public static void read(byte[] b2)throws IOException
{
DataInputStream into=new DataInputStream(
new BufferedInputStream(
new ByteArrayInputStream(b2)));
System.out.println("point="+into.readDouble());
System.out.println("num="+into.readInt());
System.out.println("str="+into.readUTF());
System.out.println("str02="+into.readUTF());
}