登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

聊天机器

Chatbot's private blog

 
 
 

日志

 
 

javaIO流(未判断)  

2009-02-10 09:00:43|  分类: 程序理论 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

java读取文件或是文件流的代码,涵盖了读取jar文件中的文件流,网络文件流等,有些读取方式为了防止编码转换带来的问题,采取了动态byte[]的方式读取,源码如下 :

javaIO流(未判断) - 启 - 聊天机器import java.io.BufferedInputStream;

javaIO流(未判断) - 启 - 聊天机器import java.io.File;

javaIO流(未判断) - 启 - 聊天机器import java.io.BufferedOutputStream;

javaIO流(未判断) - 启 - 聊天机器import java.io.IOException;

javaIO流(未判断) - 启 - 聊天机器import java.io.FileInputStream;

javaIO流(未判断) - 启 - 聊天机器import java.io.FileOutputStream;

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器public class Util ...{

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器public Util() ...{

javaIO流(未判断) - 启 - 聊天机器}

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器/** *//**

javaIO流(未判断) - 启 - 聊天机器   * 读取源文件内容

javaIO流(未判断) - 启 - 聊天机器   * @param filename String 文件路径

javaIO流(未判断) - 启 - 聊天机器   * @throws IOException

javaIO流(未判断) - 启 - 聊天机器   * @return byte[] 文件内容

javaIO流(未判断) - 启 - 聊天机器   */

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器public static byte[] readFile(String filename) throws IOException ...{

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器    File file =new File(filename);

javaIO流(未判断) - 启 - 聊天机器    if(filename==null || filename.equals(""))

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器    ...{

javaIO流(未判断) - 启 - 聊天机器      throw new NullPointerException("无效的文件路径");

javaIO流(未判断) - 启 - 聊天机器    }

javaIO流(未判断) - 启 - 聊天机器    long len = file.length();

javaIO流(未判断) - 启 - 聊天机器    byte[] bytes = new byte[(int)len];

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器    BufferedInputStream bufferedInputStream=new BufferedInputStream(new FileInputStream(file));

javaIO流(未判断) - 启 - 聊天机器    int r = bufferedInputStream.read( bytes );

javaIO流(未判断) - 启 - 聊天机器    if (r != len)

javaIO流(未判断) - 启 - 聊天机器      throw new IOException("读取文件不正确");

javaIO流(未判断) - 启 - 聊天机器    bufferedInputStream.close();

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器    return bytes;

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器}

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器/** *//**

javaIO流(未判断) - 启 - 聊天机器   * 将数据写入文件

javaIO流(未判断) - 启 - 聊天机器   * @param data byte[]

javaIO流(未判断) - 启 - 聊天机器   * @throws IOException

javaIO流(未判断) - 启 - 聊天机器   */

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器public static void writeFile(byte[] data,String filename) throws IOException ...{

javaIO流(未判断) - 启 - 聊天机器    File file =new File(filename);

javaIO流(未判断) - 启 - 聊天机器    file.getParentFile().mkdirs();

javaIO流(未判断) - 启 - 聊天机器    BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(file));

javaIO流(未判断) - 启 - 聊天机器    bufferedOutputStream.write(data);

javaIO流(未判断) - 启 - 聊天机器    bufferedOutputStream.close();

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器}

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器/** *//**

javaIO流(未判断) - 启 - 聊天机器   * 从jar文件里读取class

javaIO流(未判断) - 启 - 聊天机器   * @param filename String

javaIO流(未判断) - 启 - 聊天机器   * @throws IOException

javaIO流(未判断) - 启 - 聊天机器   * @return byte[]

javaIO流(未判断) - 启 - 聊天机器   */

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器public byte[] readFileJar(String filename) throws IOException ...{

javaIO流(未判断) - 启 - 聊天机器    BufferedInputStream bufferedInputStream=new BufferedInputStream(getClass().getResource(filename).openStream());

javaIO流(未判断) - 启 - 聊天机器    int len=bufferedInputStream.available();

javaIO流(未判断) - 启 - 聊天机器    byte[] bytes=new byte[len];

javaIO流(未判断) - 启 - 聊天机器    int r=bufferedInputStream.read(bytes);

javaIO流(未判断) - 启 - 聊天机器    if(len!=r)

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器    ...{

javaIO流(未判断) - 启 - 聊天机器      bytes=null;

javaIO流(未判断) - 启 - 聊天机器      throw new IOException("读取文件不正确");

javaIO流(未判断) - 启 - 聊天机器    }

javaIO流(未判断) - 启 - 聊天机器    bufferedInputStream.close();

javaIO流(未判断) - 启 - 聊天机器    return bytes;

javaIO流(未判断) - 启 - 聊天机器}

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器/** *//**

javaIO流(未判断) - 启 - 聊天机器   * 读取网络流,为了防止中文的问题,在读取过程中没有进行编码转换,而且采取了动态的byte[]的方式获得所有的byte返回

javaIO流(未判断) - 启 - 聊天机器   * @param bufferedInputStream BufferedInputStream

javaIO流(未判断) - 启 - 聊天机器   * @throws IOException

javaIO流(未判断) - 启 - 聊天机器   * @return byte[]

javaIO流(未判断) - 启 - 聊天机器   */

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器public byte[] readUrlStream(BufferedInputStream bufferedInputStream) throws IOException ...{

javaIO流(未判断) - 启 - 聊天机器    byte[] bytes = new byte[100];

javaIO流(未判断) - 启 - 聊天机器    byte[] bytecount=null;

javaIO流(未判断) - 启 - 聊天机器    int n=0;

javaIO流(未判断) - 启 - 聊天机器    int ilength=0;

javaIO流(未判断) - 启 - 聊天机器    while((n=bufferedInputStream.read(bytes))>=0)

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器    ...{

javaIO流(未判断) - 启 - 聊天机器      if(bytecount!=null)

javaIO流(未判断) - 启 - 聊天机器        ilength=bytecount.length;

javaIO流(未判断) - 启 - 聊天机器      byte[] tempbyte=new byte[ilength+n];

javaIO流(未判断) - 启 - 聊天机器      if(bytecount!=null)

javaIO流(未判断) - 启 - 聊天机器javaIO流(未判断) - 启 - 聊天机器      ...{

javaIO流(未判断) - 启 - 聊天机器        System.arraycopy(bytecount,0,tempbyte,0,ilength);

javaIO流(未判断) - 启 - 聊天机器      }

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器      System.arraycopy(bytes,0,tempbyte,ilength,n);

javaIO流(未判断) - 启 - 聊天机器      bytecount=tempbyte;

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器      if(n<bytes.length)

javaIO流(未判断) - 启 - 聊天机器        break;

javaIO流(未判断) - 启 - 聊天机器    }

javaIO流(未判断) - 启 - 聊天机器    return bytecount;

javaIO流(未判断) - 启 - 聊天机器}

javaIO流(未判断) - 启 - 聊天机器

javaIO流(未判断) - 启 - 聊天机器}

javaIO流(未判断) - 启 - 聊天机器

  评论这张
 
阅读(247)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018