java I/O(1)
阿新 • • 發佈:2018-03-27
asc ota etl gbk 創建 改名 java 介質 dota
數據源可以是文件,還可以是數據庫,網絡甚至是其他的程序
比如讀取文件的數據到程序中,站在程序的角度來看,就叫做輸入流
輸入流: InputStream
輸出流:OutputStream 關於流的關閉建議在finally或者try()中這是一種叫try-with-resources的方式,從JDK7開始支持的技術。 經常接觸的編碼方式有如下幾種:
ISO-8859-1 ASCII 數字和西歐字母
GBK GB2312 BIG5 中文
UNICODE (統一碼,萬國碼) 緩存字符輸入流 BufferedReader 可以一次讀取一行數據 PrintWriter 緩存字符輸出流, 可以一次寫出一行數據 有的時候,需要立即把數據寫入到硬盤,而不是等緩存滿了才寫出去。 這時候就需要用到flush
File f =
new
File(
"d:/LOLFolder/LOL.exe"
);
System.out.println(
"當前文件是:"
+f);
//文件是否存在
System.out.println(
"判斷是否存在:"
+f.exists());
//是否是文件夾
System.out.println(
"判斷是否是文件夾:"
+f.isDirectory());
//是否是文件(非文件夾)
System.out.println(
"判斷是否是文件:"
+f.isFile());
//文件長度
System.out.println(
"獲取文件的長度:"
+f.length());
//文件最後修改時間
long
time = f.lastModified();
Date d =
new
Date(time);
System.out.println(
"獲取文件的最後修改時間:"
+d);
//設置文件修改時間為1970.1.1 08:00:00
f.setLastModified(
0
);
//文件重命名
File f2 =
new
File(
"d:/LOLFolder/DOTA.exe"
);
f.renameTo(f2);
System.out.println(
"把LOL.exe改名成了DOTA.exe"
);
// 以字符串數組的形式,返回當前文件夾下的所有文件(不包含子文件及子文件夾)
f.list();
// 以文件數組的形式,返回當前文件夾下的所有文件(不包含子文件及子文件夾)
File[]fs= f.listFiles();
// 以字符串形式返回獲取所在文件夾
f.getParent();
// 以文件形式返回獲取所在文件夾
f.getParentFile();
// 創建文件夾,如果父文件夾skin不存在,創建就無效
f.mkdir();
// 創建文件夾,如果父文件夾skin不存在,就會創建父文件夾
f.mkdirs();
// 創建一個空文件,如果父文件夾skin不存在,就會拋出異常
f.createNewFile();
// 所以創建一個空文件之前,通常都會創建父目錄
f.getParentFile().mkdirs();
// 列出所有的盤符c: d: e: 等等
f.listRoots();
// 刪除文件
f.delete();
// JVM結束的時候,刪除文件,常用於臨時文件的刪除
f.deleteOnExit();
當不同的介質之間有數據交互的時候,JAVA就使用流來實現。數據源可以是文件,還可以是數據庫,網絡甚至是其他的程序
比如讀取文件的數據到程序中,站在程序的角度來看,就叫做輸入流
輸入流: InputStream
輸出流:OutputStream 關於流的關閉建議在finally或者try()中這是一種叫try-with-resources的方式,從JDK7開始支持的技術。 經常接觸的編碼方式有如下幾種:
ISO-8859-1 ASCII 數字和西歐字母
GBK GB2312 BIG5 中文
UNICODE (統一碼,萬國碼) 緩存字符輸入流 BufferedReader 可以一次讀取一行數據 PrintWriter 緩存字符輸出流, 可以一次寫出一行數據 有的時候,需要立即把數據寫入到硬盤,而不是等緩存滿了才寫出去。 這時候就需要用到flush
java I/O(1)