import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class DuiX {
public static void main(String[] args) {
//要用DataInputStream 读取一个文件,这个文件必须是由DataOutputStream 写出的,
//否则会出现EOFException,因为DataOutputStream 在写出的时候会做一些特殊标记,
//只有DataInputStream 才能成功的读取
}
//数据流--读
static void read() throws IOException {
File file=new File("要读写的文件");
FileInputStream fis=new FileInputStream(file);
DataInputStream dis=new DataInputStream(fis);
boolean b=dis.readBoolean();//读取布尔类型值
int i=dis.readInt();//读取整数类型的值
String srt=dis.readUTF();//读取字符串类型的值
System.out.println("读取到布尔值:"+b);
System.out.println("读取到整数:"+i);
System.out.println("读取到字符串:"+srt);
}
//写
static void write() throws IOException {
File file=new File("目标文件");
FileOutputStream fos=new FileOutputStream(file);
//数据输出流
DataOutputStream dos=new DataOutputStream(fos);
//开始写数据
dos.writeBoolean(true);//写布尔类型
dos.writeInt(250);//写整数型
dos.writeUTF("DFDSGCXG");//写字符串类型
dos.close();
fos.close();
}
//对象流--将一个对象写进一个文件里
static void writeDx() throws IOException {
File file=new File("写入的文件");
FileOutputStream fos=new FileOutputStream(file);
ObjectOutputStream ops=new ObjectOutputStream(fos);
//开始写对象
Person p1=new Person("翠花", 188);
System.out.println(p1);//com.Person@70dea4e
ops.writeObject(p1);
fos.close();
ops.close();
}
//将一个对象从文件中读取出来
static void readDx() throws IOException, ClassNotFoundException {
File file=new File("要读取对象的文件");
FileInputStream fis=new FileInputStream(file);
ObjectInputStream ois=new ObjectInputStream(fis);
Person targetPerson=(Person) ois.readObject();
System.out.println(targetPerson);//com.Person@3b07d329
ois.close();
fis.close();
}
}
class Person implements Serializable{
/**
* 1L 代表版本
*/
private static final long serialVersionUID = 1L;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//hashcode--toString
}
java IO流--数据流和对象流
最新推荐文章于 2024-05-27 12:58:48 发布