Java File類與簡單IO流
學習心得
一、專業課
1、File
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();//一個位元組的讀,len為ASCII碼值
// 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.追求卓越,成功也會追上你