今天,學到的是java中的文件操作。
Java.IO.File
Java中操作文件用到RandomAccessFile類,既可以讀取文件內容,也可以向文件輸出數據,但不同與普通輸入/輸出流的是RandomAccessFile支持“隨機訪問”的方式,即程序可以跳轉到文件的任意地方來讀寫數據。
局限:只能讀寫文件,不能讀寫其他IO節點
了解
(1)Java文件模型
在硬盤上是byte byte byte 儲存的,是 數據的集合
(2)打開文件
兩種常用模式“rw”讀寫方式 “r”讀
(3)寫方法
Raf.write(int a)
(4)讀方法
(5)用完之后要關閉
演示例子:
package com.my_demo; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Arrays; public class RafDemo { public static void main(String[] args) throws IOException{ File demo = new File("demo"); // 創建一個文件 if(!demo.exists())//如果文件不存在,創建到絕對目錄下 { demo.mkdirs();//這是個父目錄 } File file = new File(demo, "dat.txt"); if(!file.exists()){ file.createNewFile();//在demo目錄下創建了文件 } // RandomAccessFile raf = new RandomAccessFile(file, "rw"); RandomAccessFile raf = new RandomAccessFile("dat.txt", "rw");//讀寫方式 //看一下初始時的指針位置 System.out.println(raf.getFilePointer()); //往里寫一個字節后看看指針的位置 raf.write('c'); //寫了一個字節,它的后八位 //看一下此時的指針位置 System.out.println(raf.getFilePointer()); /** * 用writechar()方法時會寫入兩個字節 */ // raf.writeChar('c'); //寫入一個int int i = 0x7fffffff;//最大的整型 raf.write(i>>>24);//寫進去高八位 raf.write(i>>>16); raf.write(i>>>8); raf.write(i); //Java底層的運行機制 //看一下此時的指針位置 System.out.println(raf.getFilePointer()); 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)); //最后必須關閉 raf.close(); } }
不足之處望指正,新手請多關照