java檔案讀寫詳細介紹
主要針對java中檔案的概念以及一些用法
·java中檔案讀寫操作基於流這個概念
流各種方法存在於java.io包中
檔案是資料流中最常用的
一.檔案的相關方法歸類:
建立:File 物件名=new File("檔名");
讀取:·File 物件名=new File("檔案路徑");
·File 物件名=new File(父路徑,子路徑);
以下方法均以 物件名. 引用 //基礎方法
1.getName() 返回值:String //獲取檔名
2.canRead() boolean //檔案是否可讀
3.canWrite() boolean //檔案是否可被寫入
4.exits()或isFile() boolean //判斷檔案是否存在
5.length() long //獲取檔案的長度(以位元組為單位)
6.getAbsolutePath() String //獲取檔案的絕對路徑
7.getParent() String //獲取檔案的父路徑
8.isDirectory() boolean //判斷檔案是否為一個目錄
9.isHidden() boolean //判斷檔案是否為隱藏檔案
10.lastModified() long //獲取檔案最後修改時間
11.debate() //檔案刪除
二.相關類介紹(輸入輸出流)
//均以檔案物件新建自身物件對檔案進行操作,操作完後均要有關閉流的操作,即:物件名.close()
1.FileInputStream與FileOutputStream類
前者以 write()方法寫入內容到檔案
後者以 read()方法從檔案中讀取資訊
2.FileReader與FileWrite類(對前面兩種類的完善)
方法同上消除了很多弊端 //一二兩種建立物件以檔案物件建立
3.相對應的以上有兩種帶快取區域的輸入輸出流
BufferedInputStream、BufferedOutputStream
BufferedReader、BufferedWrite
使用時先定義相對應的前者物件在建立相應的Buffered物件
例:FileInputStream a=new FileInputStream("檔名");
BufferedInputStream b=new BufferedInputStream(a);
BufferedReader、BufferedWrite相關方法: //建立物件時是建立FileReader、FileWrite物件同上
read() //讀取單個字元
readLine() //讀取一個文字行 如果未讀到則返回null
write() //寫入內容 ·write(String,int,int) 寫入字串某一部分
flush() //重新整理該流快取
newLine() //寫入一個分隔行
此處舉一個明文加密文的寫入檔案的例項有關於檔案寫入讀取的例項
import java.io.*; public class Example { public static void main(String[] args) { char a[] = "今天10點出發".toCharArray(); int n = 0; try { File out = new File("word.txt"); for (int i = 0; i < a.length; i++) { a[i] = (char) (a[i] ^ 'R'); } FileWriter fw = new FileWriter(out); fw.write(a, 0, a.length); fw.close(); FileReader fr = new FileReader(out); char tom[] = new char[10]; System.out.println("加密後:"); while ((n = fr.read(tom, 0, 10)) != -1) //把fr讀到tom中去 從0到10位。 { String s = new String(tom, 0, n); System.out.println(s); } fr.close(); fr = new FileReader(out); System.out.println("明文:"); while ((n = fr.read(tom, 0, 10)) != -1) { for (int j = 0; j < n; j++) { tom[j] = (char) (tom[j] ^ 'R'); } String str = new String(tom, 0, n); System.out.println(str); } fr.close(); } catch (Exception e) { e.printStackTrace(); } } }