jialisoftw

Java 二进制文件读写操作

代码如下:

public static byte bSource;

 public static byte bTarget;

 public static byte colon = ':';

 /**
  * 从二进制文件读取字节数组
  * 
  * @param sourceFile
  * @return
  * @throws IOException
  */
 public static byte[] readFile(File sourceFile) {

  if (sourceFile.isFile() && sourceFile.exists()) {
   long fileLength = sourceFile.length();
   if (fileLength > 0L) {
    try {
     BufferedInputStream fis = new BufferedInputStream(
       new FileInputStream(sourceFile));
     byte[] b = new byte[(int) fileLength];
     
     while (fis.read(b) != -1) {
     }

     fis.close();
     fis = null;

     return b;
    } catch (IOException e) {
     e.printStackTrace();
    }

   }
  }
  return null;
 }

 /**
  * 将字节数组读入二进制文件
  * 
  * @param targetFile
  * @param content
  * @return
  */
 public static boolean writeBytes(File targetFile, byte[] content) {

  try {
   BufferedOutputStream fos = new BufferedOutputStream(
     new FileOutputStream(targetFile));

   for (int i = 0; i < content.length - 1; i++) {
    // 替换掉盘符路径(E:) 以冒号作为判断改字节是否代表一个盘符
    if (content[i] == bSource && content[i + 1] == colon) {
     content[i] = bTarget;
    }
    fos.write(content[i]);
   }

   fos.write(content[content.length - 1]); // 写入最后一个字节

   fos.flush();
   fos.close();

   return true;
  } catch (IOException e) {
   e.printStackTrace();
  }
  return false;
 }

posted on 2012-10-17 15:30 飞猪一号 阅读(1685) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2012年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

统计

常用链接

留言簿

随笔档案

友情链接

搜索

最新评论

阅读排行榜

评论排行榜