1. 程式人生 > >Java File類與簡單IO流

Java File類與簡單IO流

學習心得

一、專業課

1File

         File f1 =new File("c:\\abc\\1.txt");
         //File(String parent,String child)
         File f2 =new File("c:\\abc","2.txt");
         //File(File parent,String child)
         File f3 =new 			File("c:"+File.separator+"abc");//separator 跨平臺分隔
         File f4 =new File(f3,"3.txt");
System.out.println(f1);//c:\abc\1.txt

1.1建立方法:

1.booleancreateNewFile() 不存在返回true存在返回false
2.booleanmkdir()
建立目錄
3.booleanmkdirs()
建立多級目錄

1.2刪除方法:

1.booleandelete()
2.boolean deleteOnExit()
檔案使用完成後刪除

1.3判斷方法

1.booleancanExecute()判斷檔案是否可執行
2.booleancanRead()
判斷檔案是否可讀
3.booleancanWrite()
判斷檔案是否可寫
4.booleanexists()

判斷檔案是否存在
5.booleanisDirectory()
6.boolean isFile()
7.booleanisHidden()
8.boolean isAbsolute()
判斷是否是絕對路徑檔案不存在也能判斷

1.4獲取方法

1.String getName()
2.StringgetPath()
3.String getAbsolutePath()
4.StringgetParent()//
如果沒有父目錄返回null
5.longlastModified()//
獲取最後一次修改的時間
6.longlength()
7.boolean renameTo(File f)
8.File[]liseRoots()//

獲取機器碟符
9.String[]list()
10.String[] list(FilenameFilter filter)

1.5遍歷檔案

* windows 碟符\\

* Linux/unix碟符//

//遍歷單層目錄

String[]liStrings = file.list();

for(Stringstring: liStrings){

System.out.println(string);

}

File[]files = file.listFiles();

for(Filef: files ){

System.out.println(f.getName());

}

1.6過濾檔案

//檔案過濾

File[]files2 = file.listFiles(new FileFilter() {

@Override

publicboolean accept(File pathname) {

//TODO Auto-generated method stub

//只輸出.txt檔案

returnpathname.getName().endsWith(".txt");

}

});

1.7刪除非空目錄的檔案

//刪除多層檔案

publicstatic void deleteFiles(File file) {

if(file.exists()) {

if(file.isDirectory()) {

File[]files = file.listFiles();

for(Filefile2 : files){

deleteFiles(file2);

}

}

file.delete();

}

}

1.8移動檔案

Filefile= newFile("D:"+File.separator+"dd.txt");

Filefile2= newFile("D:"+File.separator+"pd.txt");

//重新命名

if(file.renameTo(file2)) {

System.out.println("重新命名成功");

}

2.IO

按照資料流的方向不同可以分為:輸入流和輸出流。

按照處理資料單位不同可以分為:位元組流和字元流。

按照實現功能不同可以分為:節點流和處理流。

2.1FileInputStream

//單個位元組

Filefile = new File("d:"+File.separator+"pd.txt");

FileInputStreamfis = null;

try{

fis = new FileInputStream(file);

//int len = fis.read();//一個位元組的讀,lenASCII碼值

// System.out.println(len);

int len = 0;

while (-1 != (len = fis.read())) {

System.out.println((char)len);

}

fis.close();//記得close

//自定義緩衝區

//自定義緩衝區

byte[]bytes = new byte[1024];

intlen = 0;

while(-1 != (len = fis.read(bytes))) {

System.out.println(len);

System.out.println(newString(bytes, "gbk"));

System.out.println(newString(bytes));

System.out.println(newString(bytes, 0, len));

}

2.2FileOutputStream

// true允許追加

FileOutputStreamfos = new FileOutputStream(file,true);

// FileOutputStreamfos = new FileOutputStream(file);

/* fos.write('');

fos.write('b'); //一個一個位元組寫

*/

intlen = 0 ;

Stringstring = "waa,you are wonderful";

byte[]bs = string.getBytes();

fos.write(bs);

fos.flush();

fos.close();

2.3拷貝檔案

publicstatic void copy() throws Exception {

Filesrc = new File("d:"+File.separator+"src.jpg");

Filedest = new File("e:"+File.separator+"dest.jpg");

FileInputStreamfis = null;

FileOutputStreamfos = null;

if(src.exists()) {

fis= new FileInputStream(src);

fos= new FileOutputStream(dest);

intlen = 0 ;

byte[]bytes = new byte[1024];

while(-1 != (len = fis.read(bytes))) {

fos.write(bytes,0, len);

}

fos.flush();

fos.close();

fis.close();

}else{

System.out.println("檔案不存在");

}

}

3.銀行儲存業務知識

銀行儲存系統流程

學習心得:

1.追求卓越,成功也會追上你