一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

[原創(chuàng)]JAVA讀取文件或是數據流的源代碼--涵蓋了多種形式

 wade0564 2010-10-02
 java讀取文件或是文件流的代碼,涵蓋了讀取jar文件中的文件流,網絡文件流等,有些讀取方式為了防止編碼轉換帶來的問題,采取了動態(tài)byte[]的方式讀取,源碼如下

import java.io.BufferedInputStream;
import java.io.File;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Util {

  public Util() {
  }
  /**
   * 讀取源文件內容
   * @param filename String 文件路徑
   * @throws IOException
   * @return byte[] 文件內容
   */
  public static byte[] readFile(String filename) throws IOException {

    File file =new File(filename);
    if(filename==null || filename.equals(""))
    {
      throw new NullPointerException("無效的文件路徑");
    }
    long len = file.length();
    byte[] bytes = new byte[(int)len];

    BufferedInputStream bufferedInputStream=new BufferedInputStream(new FileInputStream(file));
    int r = bufferedInputStream.read( bytes );
    if (r != len)
      throw new IOException("讀取文件不正確");
    bufferedInputStream.close();

    return bytes;

  }

  /**
   * 將數據寫入文件
   * @param data byte[]
   * @throws IOException
   */
  public static void writeFile(byte[] data,String filename) throws IOException {
    File file =new File(filename);
    file.getParentFile().mkdirs();
    BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(file));
    bufferedOutputStream.write(data);
    bufferedOutputStream.close();

  }

  /**
   * 從jar文件里讀取class
   * @param filename String
   * @throws IOException
   * @return byte[]
   */
  public byte[] readFileJar(String filename) throws IOException {
    BufferedInputStream bufferedInputStream=new BufferedInputStream(getClass().getResource(filename).openStream());
    int len=bufferedInputStream.available();
    byte[] bytes=new byte[len];
    int r=bufferedInputStream.read(bytes);
    if(len!=r)
    {
      bytes=null;
      throw new IOException("讀取文件不正確");
    }
    bufferedInputStream.close();
    return bytes;
  }
 
  /**
   * 讀取網絡流,為了防止中文的問題,在讀取過程中沒有進行編碼轉換,而且采取了動態(tài)的byte[]的方式獲得所有的byte返回
   * @param bufferedInputStream BufferedInputStream
   * @throws IOException
   * @return byte[]
   */
  public byte[] readUrlStream(BufferedInputStream bufferedInputStream) throws IOException {
    byte[] bytes = new byte[100];
    byte[] bytecount=null;
    int n=0;
    int ilength=0;
    while((n=bufferedInputStream.read(bytes))>=0)
    {
      if(bytecount!=null)
        ilength=bytecount.length;
      byte[] tempbyte=new byte[ilength+n];
      if(bytecount!=null)
      {
        System.arraycopy(bytecount,0,tempbyte,0,ilength);
      }

      System.arraycopy(bytes,0,tempbyte,ilength,n);
      bytecount=tempbyte;

      if(n<bytes.length)
        break;
    }
    return bytecount;
  }

}

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩国产欧美中文字幕| 日韩亚洲激情在线观看| 国产精欧美一区二区三区久久| 欧美精品专区一区二区| 国内精品美女福利av在线| 99久只有精品免费视频播放| 日本亚洲欧美男人的天堂| 熟妇久久人妻中文字幕| 亚洲中文字幕乱码亚洲| 91人妻丝袜一区二区三区| 在线观看中文字幕91| 国产亚洲欧美日韩精品一区| 97人妻精品一区二区三区男同| 欧美韩国日本精品在线| 日本91在线观看视频| 熟女少妇久久一区二区三区| 开心久久综合激情五月天| 亚洲黑人精品一区二区欧美| 丰满少妇高潮一区二区| 日本女优一色一伦一区二区三区| 成人国产一区二区三区精品麻豆| 国产在线一区中文字幕| 亚洲午夜福利视频在线| 99热在线精品视频观看| 高中女厕偷拍一区二区三区| 日木乱偷人妻中文字幕在线| 欧美日韩免费观看视频| 亚洲欧美国产中文色妇| 国语对白刺激高潮在线视频| 国产欧美高清精品一区| 沐浴偷拍一区二区视频| 夫妻激情视频一区二区三区| 精品亚洲一区二区三区w竹菊| 国产欧美另类激情久久久| 国产91色综合久久高清| 亚洲精品福利视频在线观看| 欧美精品女同一区二区| 亚洲欧美天堂精品在线| 91偷拍与自偷拍精品| 国产水滴盗摄一区二区| 粗暴蹂躏中文一区二区三区|