本篇內容主要講解“Java RandomAccessFile操作的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java RandomAccessFile操作的方法是什么”吧!
一 簡介
RandomAccessFile:java提供對文件內容的訪問,既可以讀文件,也可以寫文件。
RandomAccessFile支持隨機訪問文件,可以訪問文件的任意位置
1、java文件模型
在硬盤上的文件是byte byte byte存儲的,是數據的集合
2、打開文件
有兩種模式“rw”(讀寫) “r”(只讀)
RandomAccessFile raf = new RandomAccessFile(file,"rw")
文件指針:打開文件時候指針在開頭 pointer = 0;
3、寫文件
raf.write(int)---->只寫一個字節(后8位),同時指針指向下一個位置,準備再次寫入
4、讀方法
int b = raf.read() ----->讀一個字節
5、文件讀寫完以后一定要關閉
二 代碼實現
package com.imooc.io;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import java.util.Arrays;public class RafDemo {
/** * @param args */ public static void main(String[] args) throws IOException{
File demo = new File("demo");
if(!demo.exists()) demo.mkdir();
File file = new File(demo,"raf.dat");
if(!file.exists()) file.createNewFile();
RandomAccessFile raf = new RandomAccessFile(file, "rw");
//指針的位置
System.out.println(raf.getFilePointer());
raf.write('A');
//只寫了一個字節
System.out.println(raf.getFilePointer());
raf.write('B');
int i = 0x7fffffff;
//用write方法每次只能寫一個字節,如果要把i寫進去就得寫4次 raf.write(i >>> 24);//高8位 raf.write(i >>> 16); raf.write(i >>> 8); raf.write(i);
System.out.println(raf.getFilePointer());
//可以直接寫一個int raf.writeInt(i);
String s = "中";
byte[] gbk = s.getBytes("gbk");
raf.write(gbk);
System.out.println(raf.length());
//讀文件,必須把指針移到頭部
raf.seek(0);
//一次性讀取,把文件中的內容都讀到字節數組中
byte[] buf = new byte[(int)raf.length()];
raf.read(buf);
System.out.println(Arrays.toString(buf));
for (byte b : buf) {
System.out.println(Integer.toHexString(b & 0xff)+" ");
}
raf.close();
}}
三 實現效果
01612[65, 66, 127, -1, -1, -1, 127, -1, -1, -1, -42, -48]41427fffffff7fffffffd6d0
到此,相信大家對“Java RandomAccessFile操作的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。