欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java讀寫二進(jìn)制文件的解決方法

 更新時(shí)間:2013年05月16日 17:41:28   作者:  
本篇文章是對(duì)java讀寫二進(jìn)制文件的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
接口:Writerable
復(fù)制代碼 代碼如下:

package com.geoway.pad.common;

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;
}

接口實(shí)現(xiàn)類:UserWriter
復(fù)制代碼 代碼如下:

package com.geoway.pad.common;

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) {
        this.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;

    @Override
    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.number=di.readInt();
       this.id=di.readUTF();
       this.age=di.readInt();
       this.administrator=di.readBoolean();
       this.userName=di.readUTF();
       this.password=di.readUTF();
       this.text=di.readUTF();
       //讀取圖片
       this.image=new byte[2048];
       try{
         di.readFully(this.image);
       }catch(Exception e){
           System.out.println(e.toString());
       }
    }
  public static byte[] in2byte(InputStream is) throws IOException{  
     byte[] bs= new byte[1024];  
     ByteArrayOutputStream bos = new ByteArrayOutputStream();  
     int len = -1;  
     while((len=is.read(bs))!=-1){  
         bos.write(bs,0,len);  
     }  
     bs = bos.toByteArray() ;  
     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("做一個(gè)天氣預(yù)報(bào),可以保存要顯示的城市名稱 在增加城市頁(yè)面,我的rms關(guān)鍵操作如下(其中SetCanvas.cityName是一個(gè)Vector,用來(lái)保存城市名,在執(zhí)行此段代碼之前,我已經(jīng)把新增加的城市名添加進(jìn)了這個(gè)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();
        u.read(new DataInputStream(new FileInputStream("c:\\user.data")));
        System.out.println(u.getUserName());
        System.out.println(u.getPassword());
        System.out.println(u.isAdministrator());
        System.out.println(u.getText());
        //拿出圖片
        copy(new ByteArrayInputStream(u.getImage()), new FileOutputStream("c:\\copy.jpg"));

    }

}

本例只是本人測(cè)試DataOutput和DataInput接口時(shí)寫的,并沒(méi)有在項(xiàng)目中使用,也不知道在項(xiàng)目中這樣用會(huì)不會(huì)有什么問(wèn)題。

相關(guān)文章

  • Java游戲開發(fā)拼圖游戲經(jīng)典版

    Java游戲開發(fā)拼圖游戲經(jīng)典版

    這篇文章主要介紹了Java游戲開發(fā)拼圖游戲經(jīng)典版,對(duì)這方面感興趣的同學(xué)可以跟著教程試下
    2021-01-01
  • Java Spring事務(wù)的隔離級(jí)別詳解

    Java Spring事務(wù)的隔離級(jí)別詳解

    這篇文章主要介紹了Java Spring事務(wù)的隔離級(jí)別,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • java mail使用qq郵箱發(fā)郵件的配置方法

    java mail使用qq郵箱發(fā)郵件的配置方法

    本文為你介紹了java mail使用qq郵箱發(fā)郵件的方法,大家參考使用吧
    2014-01-01
  • SpringBoot實(shí)現(xiàn)發(fā)送驗(yàn)證碼功能(圖片驗(yàn)證碼)

    SpringBoot實(shí)現(xiàn)發(fā)送驗(yàn)證碼功能(圖片驗(yàn)證碼)

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)發(fā)送驗(yàn)證碼功能(圖片驗(yàn)證碼),本次內(nèi)容主要學(xué)習(xí)如何做一個(gè)發(fā)送驗(yàn)證碼和識(shí)別驗(yàn)證碼的功能,需要的朋友可以參考下
    2024-06-06
  • Java掃描文件夾下所有文件名

    Java掃描文件夾下所有文件名

    這篇文章主要為大家詳細(xì)介紹了Java掃描文件夾下所有文件名,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • SpringCloud Alibaba Nacos 整合SpringBoot Admin實(shí)戰(zhàn)

    SpringCloud Alibaba Nacos 整合SpringBoot A

    這篇文章主要介紹了SpringCloud Alibaba Nacos 整合SpringBoot Admin實(shí)戰(zhàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • myEclipse配置jdk1.7教程

    myEclipse配置jdk1.7教程

    這篇文章主要為大家詳細(xì)介紹了myEclipse配置jdk1.7教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Spring內(nèi)部bean和級(jí)聯(lián)屬性用法詳解

    Spring內(nèi)部bean和級(jí)聯(lián)屬性用法詳解

    這篇文章主要介紹了Java內(nèi)部bean和級(jí)聯(lián)屬性用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 使用IDEA創(chuàng)建maven父子工程項(xiàng)目 (圖文)

    使用IDEA創(chuàng)建maven父子工程項(xiàng)目 (圖文)

    本文主要介紹了使用IDEA創(chuàng)建maven父子工程項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Springboot 掃描mapper接口的2種操作

    Springboot 掃描mapper接口的2種操作

    這篇文章主要介紹了Springboot 掃描mapper接口的2種操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01

最新評(píng)論