Java读取磁盘指定扇区
读取磁盘的指定扇区内容,基于Java实现,要求root权限。
/**
* 读取磁盘或TF卡指定扇区
* @param device 设备,如/dev/sda
* @param sector 扇区号
* @param size 扇区大小,字节
* @return 扇区内容
*/
public byte[] readDiskSector(String device, int sector, int size) throws IOException {
byte[] sectorBytes = null;
FileChannel fc = null;
try {
Path fp = Paths.get(device);
fc = FileChannel.open(fp, EnumSet.of(StandardOpenOption.READ));
ByteBuffer buffer = ByteBuffer.allocate(size);
fc.read(buffer, sector * size);
fc.close();
sectorBytes = buffer.array();
}
finally {
if(fc != null)
fc.close();
}
return sectorBytes;
}
如果磁盘为/dev/sda,扇区大小为512字节,读取第1024扇区,则执行:
byte[] sectorBytes = readDiskSector("/dev/sda", 1024, 512);
【Java读取磁盘指定扇区】
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- Java基础-高级特性-枚举实现状态机