java读写⼆进制⽂件的解决⽅法复制代码代码如下:
way.padmon;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
public interface Writerable {
//write
public void write(DataOutput data) throws IOException;
//read
public void read(DataInput di) throws IOException;
}
复制代码代码如下:
way.padmon;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
public class UserWriter implements Writerable{
//getter setter methods
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isAdministrator() {
return administrator;
}
public void setAdministrator(boolean administrator) {
this.administrator = administrator;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setText(String text) {
< = text;
}
public String getText() {
return text;
}
public void setImage(byte[] image) {
this.image = image;
}
public byte[] getImage() {
return image;
};
//private fields
private int number;
private String id;
private int age;
private boolean administrator;
private String userName;
private String password;
private String text;
private byte[] image;
@Overridespring怎么读多个文件
public void write(DataOutput data) throws IOException { data.writeInt(number);
data.writeUTF(id);
data.writeInt(age);
data.writeBoolean(administrator);
data.writeUTF(userName);
data.writeUTF(password);
data.writeUTF(text);
data.write(image);
}
@Override
public void read(DataInput di) throws IOException {
this.adInt();
this.adUTF();
this.adInt();
this.adBoolean();
this.adUTF();
this.adUTF();
<=di.readUTF();
//读取图⽚
this.image=new byte[2048];
try{
}catch(Exception e){
System.out.String());
}
public static byte[] in2byte(InputStream is) throws IOException{
byte[] bs= new byte[1024];
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int len = -1;
while((ad(bs))!=-1){
bos.write(bs,0,len);
}
bs = ByteArray() ;
return bs ;
}
public static void copy(InputStream in, OutputStream out) throws IOException {
byte[] buf = new byte[1024];
while (true) {
int len = in.read(buf);
if (len < 0) break;
out.write(buf, 0, len);
}
}
public static void main(String[] args) throws FileNotFoundException, IOException{
UserWriter user=new UserWriter();
user.setUserName("likehua");
user.setPassword("password");
user.setId(UUID.randomUUID().toString());
user.setNumber(123);
user.setAdministrator(false);
//加⼀段⽂字
user.setText("做⼀个天⽓预报,可以保存要显⽰的城市名称在增加城市页⾯,我的rms关键操作如下(其中SetCanvas.cityName是⼀个Vector,⽤来保存城市名,在执⾏此段代码之前,我已经把新增加的城市名添加进了这个Vector ");
//传⼊⼀张图⽚
user.setImage(in2byte(new FileInputStream("c:\\1.jpg")));
user.write(new DataOutputStream(new FileOutputStream("c:\\user.data")));
System.out.println("完毕");
System.out.println("....读取开始...");
UserWriter u=new UserWriter();
System.out.UserName());
System.out.Password());
System.out.println(u.isAdministrator());
System.out.Text());
//拿出图⽚
copy(new Image()), new FileOutputStream("c:\\copy.jpg"));
}
}
本例只是本⼈测试DataOutput和DataInput接⼝时写的,并没有在项⽬中使⽤,也不知道在项⽬中这样⽤会不会有什么问题。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论