標籤:window 輸入 new 抽象 exception 資料 ted 返回 不能
文字檔:可以用編輯器開啟編輯的檔案
二進位檔案:不能用編輯器編輯的僅供程式讀取的檔案。
文本I/O需要編碼解碼。
二進位I/O不需要編碼解碼,因此更高效。
*****************文字檔的I/O*****************************
public class fileInput {
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
File file = new File("a.txt");//如果沒有該檔案,自動建立
System.out.println(file.exists());///判斷該檔案是否存在
System.out.println(file.length());///返迴文件大小
System.out.println(file.canRead());///判斷檔案的可讀性
System.out.println(file.isDirectory());////File對象代表的是一個目錄
System.out.println(file.isAbsolute());////file檔案是不是絕對路徑
System.out.println(file.isHidden());///判斷檔案是否是隱藏的
System.out.println(file.getAbsolutePath());///取得檔案的絕對路徑
System.out.println(new Date(file.lastModified()));///擷取檔案最後 一次唄修改的時間
// 向檔案寫入資料
try(PrintWriter print = new PrintWriter(file);) {
print.print("Hello,i am from NewYork!");//寫入字串
print.println(123456); //寫入數值
}
////從檔案讀取資料 ,控制台輸出
try(Scanner input = new Scanner(file);
){
System.out.println(input.next());
while(input.hasNext()){
System.out.println(input.next());
}
}
}
}
*********************二進位檔案I/O********************
抽象類別 InputStream: 讀取位元據的根類 。抽象類別 OutputStream:寫入位元據的根類
FileOutputStream是OutputStream的子類,向檔案寫入資料
FileInputStream是InputStream的子類,從檔案讀取資料
try-with-resources 聲明和建立輸入輸出資料流 ,使用後可以自動關閉
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo1 {
//二進位所有方法都聲明為拋出java.io.IOException或者jav.io.IOException的子類
public static void main(String[] args) throws IOException {
try(FileOutputStream output = new FileOutputStream("C:\\Users\\Cortana\\Desktop\\myfile1");){
for (int i = 0; i <=100; i++) {
output.write(i); //向指定路徑,(windows下)的檔案寫入0-100的數
}
}
try(FileOutputStream output = new FileOutputStream("temp.txt");){
for (int i = 100; i <=200; i++) {
output.write(i); //向預設路徑檔案temp.txt寫入100-200的數
}
}
try( FileInputStream input = new FileInputStream("C:\\Users\\Cortana\\Desktop\\myfile1");){
int value;
while((value=input.read())!=-1){
System.out.println(value+" "); //從檔案讀取資料,在控制台輸出
}
System.out.println();
}
try( FileInputStream input = new FileInputStream("temp.txt");){
int value;
while((value=input.read())!=-1){
System.out.println(value+" "); //從檔案讀取資料,在控制台輸出
}
System.out.println();
}
}
}
java 文字檔I/O 、二進位檔案I/O