標籤:
package coreJava;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import java.util.Arrays;public class RandomAccessFileWriteandRead { public static void main(String[] args)throws IOException { // TODO Auto-generated method stub 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寫進去的就得寫四次 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.print(Integer.toHexString(b & 0xff)+" "); } String s1 = new String(buf); System.out.println(s1); //關閉檔案 raf.close(); }}
RandomAccessFile類的使用(隨機讀取java中的檔案)