此文全文参考http://blog.csdn.net/sniffer_wang/article/details/7455701,自己加以改进应用,谢了

 import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class FileHelper {
//第一种获取文件内容方式
public byte[] getContent(String filePath) throws IOException {
File file = new File(filePath); long fileSize = file.length();
if (fileSize > Integer.MAX_VALUE) {
System.out.println("file too big...");
return null;
} FileInputStream fi = new FileInputStream(file); byte[] buffer = new byte[(int) fileSize]; int offset = 0; int numRead = 0; while (offset < buffer.length && (numRead = fi.read(buffer, offset, buffer.length - offset)) >= 0) { offset += numRead; } // 确保所有数据均被读取 if (offset != buffer.length) { throw new IOException("Could not completely read file "+ file.getName()); } fi.close(); return buffer;
} //第二种获取文件内容方式
public byte[] getContent2(String filePath) throws IOException
{
FileInputStream in=new FileInputStream(filePath); ByteArrayOutputStream out=new ByteArrayOutputStream(1024); System.out.println("bytes available:"+in.available()); byte[] temp=new byte[1024]; int size=0; while((size=in.read(temp))!=-1)
{
out.write(temp,0,size);
} in.close(); byte[] bytes=out.toByteArray();
System.out.println("bytes size got is:"+bytes.length); return bytes;
}
//将byte数组写入文件
public void createFile(String path, byte[] content) throws IOException { FileOutputStream fos = new FileOutputStream(path); fos.write(content);
fos.close();
} }

将一个文件内的所有内容读取到byte数组,也可以把一个byte[]的内容写入到文件中。可以作为复制文件的方法

应用:

import java.io.IOException;

public class byteRW {

    /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte[] buf =new byte[1024];
FileHelper filehelper = new FileHelper();
try {
//第一种获取文件内容方式,读取文件到字节数组
buf =filehelper.getContent("D:/1.txt");
System.out.println("--字节数组"+buf); String bufStr =new String(buf);
System.out.println("--字节数组转换为字符串"+bufStr);
//将byte数组写入文件
filehelper.createFile("D:/2.txt", buf);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

将一个文件读取为字节数组,此时打印出来发现什么也看不懂,解决办法:将字节数组强制转换为字符串

方法一:使用new String转换为字符串  (推荐)

方法二:上网查找自定义的字节数组转换为字符串的函数

二、将字节数组直接写入到文件,此时查看目标文件,已经是字符串格式的了

源文件:123456789.0 我爱北京天安门

字节数组:[B@2a139a55

字节数组转换为字符串:123456789.0 我爱北京天安门

目标文件:123456789.0 我爱北京天安门

java byte【】数组与文件读写的更多相关文章

  1. java byte【】数组与文件读写(增加新功能)

    今天在测试直接写的文章: java byte[]数组与文件读写 时,想调用FileHelper类对字节数组以追加的方式写文件,结果无论怎样竟然数据录入不全,重新看了下文件的追加模式,提供了两种方式: ...

  2. Java 字符流实现文件读写操作(FileReader-FileWriter)

    Java 字符流实现文件读写操作(FileReader-FileWriter) 备注:字符流效率高,但是没有字节流底层 字节流地址:http://pengyan5945.iteye.com/blog/ ...

  3. java byte数组与String互转

      java byte数组与String互转 CreationTime--2018年7月6日14点53分 Author:Marydon 1.String-->byte[] 方法:使用String ...

  4. java byte数组与16进制间的相互转换

      java byte数组与16进制间的相互转换 CreationTime--2018年6月11日15点34分 Author:Marydon 1.准备工作 import java.util.Array ...

  5. 【java学习笔记】文件读写(IO流)

    1.字节流 FileInputStream.FileOutputStream ①FileInputStream import java.io.FileInputStream; public class ...

  6. byte数组和文件的相互转换

    /** * 获得指定文件的byte数组 */ private byte[] getBytes(String filePath){ byte[] buffer = null; try { File fi ...

  7. java byte数组与int,long,short,byte转换

    public class DataTypeChangeHelper { /** * 将一个单字节的byte转换成32位的int * * @param b * byte * @return conver ...

  8. java byte数组与String的相互转换

    String  ->   byte数组 String str = "abc天"; byte[] btr = str.getBytes(); System.out.printl ...

  9. java中的File文件读写操作

    之前有好几次碰到文件操作方面的问题,大都由于时间太赶而没有好好花时间去细致的研究研究.每次都是在百度或者博客或者论坛里面參照着大牛们写的步骤照搬过来,之后再次碰到又忘记了.刚好今天比較清闲.于是就在网 ...

随机推荐

  1. delphi显示hello world 和退出程序

    Label1.Caption:='hello world!' Form1.close; application.Terminate; //终止程序 Application.Run; //程序运行 te ...

  2. LPC2478内存布局以及启动方式

    LPC2478 是NXP公司推出的一款基于APR7TDMI-S的工控型MCU,内置RAM与flash,同时提供外部扩展flash和ram接口,拥有LCD控制器,其内存布局如下所示 其中Flash高达5 ...

  3. 测试部署nginx

    1.已经安装了nginx 2.修改tomcat端口号为10081(可随意) 3 修改nginx的nginx.config  如下: upstream apiserver {           ip_ ...

  4. 实现基本TCP套接字客户端

    //实现基本TCP套接字客户端var net = require('net');function getConnection(connName){ var client = net.connect({ ...

  5. realvnc的卸载

    我安装了realvnc5.3.2后,采用如下方式卸载: (1)用如下命令查询当前安装的realvnc包的全名: rpm -qa realvnc-vnc-server (2) rpm -e 查询到的安装 ...

  6. svn 安装网站

    1.svn插件 http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240

  7. Linux之文件权限属性设置

    文件权限属性设置 1.chown命令 chrep命令 chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组. 用户可以是用户或 ...

  8. [原]崩溃在ole32!CStdMarshal::DisconnectSrvIPIDs

    最近项目里遇到一个崩溃,不定期出现,很是头疼!今晚终于忍无可忍,下决心要干掉它!(于是用凉水洗了把脸,开始分析dump)希望凌晨的这篇总结对有相似经历的朋友有所启发!(看之前相关的几个dump可以猜到 ...

  9. JS判断doctype文档模式-document.compatMode

    IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样,但在Quirks Mode模式下则有 ...

  10. HDU -2100-Lovekey

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2100 这题开始一直想着先把26进制转换成10进制,在转换成26进制,又200个字符因而行不通, 直接卡 ...