文件读写(2)

int与byte[]之间的互相转化
使用java.nio.ByteBuffer类可以完成int到
byte[]的转换
byte[] buf = new byte[4];
int a = 0x12345678;
ByteBuffer enc = ByteBuffer.wrap(buf);
enc.putInt(a);
可以发现,buf中的4个字节为: 12 34 56 78

反过程:把byte[]->int
ByteBuffer dec = ByteBuffer.wrap(buf);

int value = dec.getInt();

代码如下:

package my;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;public class HelloWorld
{public static void write(byte[] data,int off,int size) {File filename=new File("c:/example/haha");try {FileOutputStream fout=new FileOutputStream(filename);fout.write(data, off, size);fout.close();}catch(IOException e) {e.printStackTrace();}}public static int read(byte[] buf) {int count=0;File filename=new File("c:/example/haha");try {FileInputStream fin=new FileInputStream(filename);count=fin.read(buf);fin.close();}catch(IOException e) {e.printStackTrace();}return count;}public static void main(String[] args){
//      byte[] buf=new byte[4];
//      int a=0x12345678;
//      ByteBuffer enc=ByteBuffer.wrap(buf);
//      enc.putInt(a);
//      int size=enc.position();
//      write(buf,0,size);
//
//      byte[] buf_read=new byte[1024];
//      int count_read=read(buf_read);
//      ByteBuffer srcbuf=ByteBuffer.wrap(buf_read,0,count_read);
//      int n=srcbuf.getInt();
//      System.out.println("读取到的int值为:"+n);
//      System.out.println("exit");//把String写入文件中int id=0x00000001;String name="球球";String phone="15656565656";byte[] buf=new byte[1024];ByteBuffer dstbuf=ByteBuffer.wrap(buf);dstbuf.putInt(id);   //放入IDtry {byte[] s1=name.getBytes("GBK");byte[] s2=phone.getBytes("GBK");dstbuf.put(s1);dstbuf.put(s2);}catch(Exception e) {e.printStackTrace();}int total=dstbuf.position();write(buf,0,total);System.out.println("exit");}
}

运行结果如下:

Java高级语法笔记-文件读写(2)相关推荐

  1. Java高级语法笔记-文件读写

    写文件:追加模式写入 在构造时第2个参数置为true,表示append new FileOutputStream(filename, true); 使用FileInputStream可以从文件中读取数 ...

  2. Java高级语法笔记-文件操作-链表的存储

    代码如下: AfByteBuffer.java package my;import java.io.File; import java.io.FileInputStream; import java. ...

  3. Java高级语法笔记-文件及目录操作

    java.io.File 用于表示一个文件或目录的路径名(pathname) 例如: File f = new File("c:/example/123.txt");先判断它是否存 ...

  4. Java高级语法笔记-模板类

    模板类 模板类用与表示通用的数据结构和算法. 例如,定义一个类List,表示通用链表(适用于任意对象的类型) 定义模板类: class List<T>{ } 使用模板类:创建List对象时 ...

  5. Java高级语法笔记-库的使用(jar)

    库的使用(jar) 开发一个有用的类,想给别人使用,但是不想把源代码给别人. Java里的库文件的形式 *.jar 可以将编译出的class文件打包成 *.jar格式,称为jar包.将jar包发给别人 ...

  6. Java高级语法笔记-反射机制(Reflection) (1)

    反射机制:在C/C++里面是没有的. 反射机制是Java的一个非常重要的机制.一些著名的应用框架都使用了此机制. java.lang.Class它是Java语法的一个基础类,用于描述一个class对象 ...

  7. Java高级语法笔记-枚举类型

    用enum定义枚举类型,即定义一些常量. public enum Weekday{ SUNDAY,MONDAY,TUESDAY,WEDNESDAY, THURSDAY,FRIDAY,SATURDAY ...

  8. Java高级语法笔记-匿名类(Anonymous Class)

    匿名类(Anonymous Class) 匿名内部类,简称匿名类:是内部类的一种化简写法. 基本写法如下: BaseType obj=new BaseType(){ //类的定义 } Java项目中匿 ...

  9. Java高级语法笔记-语法支持的异常

    语法支持的异常 Java对异常支持得很彻底,举例来说: (java.lang.*下面,语法自带的异常类) 数组越界 ArrayIndexOutOfBoundsException 除0异常 Arithm ...

最新文章

  1. 为了智能驾驶,李彦宏要改造城市道路了!
  2. html5通html5通,HTML5 history详解
  3. 用于读、写、删除、比较Session中的用户信息的类库。
  4. 硬核致敬Linux !30岁生日快乐!
  5. Ajax(从json中提取数据)
  6. dataframe groupby_详解pandas中的map、apply、applymap、groupby、agg.
  7. r9270公版bios_强劲超公版 迪兰R9-270酷能特价赠大礼
  8. dataload mysql_如何向eova中添加新的数据源呢
  9. 小米盒子 android 投影仪,小米盒子连接投影仪方法
  10. 【分享帖】国内主流网络信息采集和页面数据抓取工具盘点
  11. Python正向和反向迭代器介绍
  12. 【内网渗透】域横向PTHPTKPTT哈希票据传递
  13. 清理 Anaconda 的 pkgs
  14. python 清空表格_python 清空表数据库表
  15. 如何在Excel中的每个打印页面上重复特定的行或列
  16. PNG透明图片在IE浏览器中正确显示
  17. 数据治理认证系列——CDGP介绍、报名事项
  18. php性别类型是什么,专属男女的各种性别符号
  19. 我来到博客大世界啦!
  20. 联想硬盘保护系统从6.5升级到7.6 过程概要

热门文章

  1. 毕业后想成为一名软件开发工程师,应该如何学习,大牛给出建议!
  2. 制造业数字化经营新思路:管理平台架构及三大落地方法论
  3. 从功能、交互、性能全方位解读,BI工具FineBI4.0.2测评报告
  4. 可缺一台洗衣机的ykcchf
  5. 飞鸽传书的设计应当具有“完整性”
  6. 局域网聊天老大——飞鸽传书
  7. Google走了 站长应该更相信百度
  8. 如何高效率学Web前端 怎么规划前端学习路线
  9. 程序员与代码之间的搞笑日常,笑的人肚子痛
  10. java 重启tomcat_linux下重启tomcat的命令