Java基礎【08】常用API——RandomAccessFile相關API
阿新 • • 發佈:2018-12-16
java.io.RandomAccessFile:專門用來讀寫檔案資料的類,其讀寫是基於指標進行的,即RAF總是在指標指向位置讀取或者寫出位元組。 RAF有兩種常用的模式: * r:只讀模式,只能讀取檔案資料,不可以做寫操作。 * rw:讀寫模式,即可讀也可寫。
1.寫出資料:void write(int d)
package raf; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileDemo { public static void main(String[] args) throws IOException { /* * 對專案目錄下的檔案test.dat檔案進行讀寫操作 * * RandomAccessFile(String path, String mode) * RandomAccessFile(File file, String mode) */ RandomAccessFile raf = new RandomAccessFile("test.dat", "rw"); System.out.println("raf已建立!"); /* * void write(int d) * 該方法可以向檔案中寫入一個位元組,寫入的是 * 給定的int值所對應的2進位制的"低八位". * vvvvvvvv * 00000000 00000000 00000001 00000001 */ raf.write(1); System.out.println("寫出完畢!"); raf.close(); } }
2.讀取資料:int read()
package raf; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; /** * 從檔案中讀取一個位元組 * @author adminitartor */ public class ReadDemo { public static void main(String[] args) throws IOException { RandomAccessFile raf = new RandomAccessFile("test.dat", "r"); /* * int read() * 從檔案中讀取1個位元組,並以int形式返回。若返回 * 值為-1,則表示檔案讀取到末尾了 * 00000000 00000000 00000000 00000001 */ int d = raf.read(); System.out.println(d); d = raf.read(); System.out.println(d); raf.close(); } }
3.demo——檔案複製
package raf; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; /** * 檔案複製操作 * @author adminitartor */ public class CopyDemo { public static void main(String[] args) throws IOException { /* * 1:建立一個RAF用於讀取原檔案 * 2:建立一個RAF用於寫入複製檔案 * 3:迴圈從原檔案讀取每一個位元組並寫入到複製檔案 * 中完成copy工作 */ //1 RandomAccessFile src = new RandomAccessFile("img.jpg", "r"); //2 RandomAccessFile desc = new RandomAccessFile("img_cp.jpg","rw"); //3 int d = -1; while((d = src.read())!=-1){ desc.write(d); } System.out.println("複製完畢!"); src.close(); desc.close(); } }