1. 程式人生 > 其它 >Java使用IO操作檔案

Java使用IO操作檔案

技術標籤:java

建立檔案

已有目錄下建立檔案:

// 已有目錄下建立檔案:
public class TestFile{
	public static void main(String []args){
	File file=new File("D:/myDoc/new.txt");      //該目錄D:/myDoc已存在;
	try{
		file.createNewFile();                    //核心就是這一句!
		}catch(IOException e){
			e.printStackTrace();
			}
		}
	}

建立目錄+建立檔案

// 新建目錄和檔案需要先建立目錄,再建立檔案
public class TestFile{
	public static void main(String []args){
	File file=new File("D:/newfile/new.txt");
	Fiel a=file.getParentFile();                 //將要新建的檔案的父級目錄賦給物件a;
	a.mkdirs();                                  //建立父類目錄;
	try{
		file.createNewFile();                    //建立檔案
}catch( IOException e){ e.printStackTrace; } } }

File類的方法

isDirectory();判斷是否是目錄;
isFile();判斷是否是檔案;
length();判斷檔案長度;
getName();獲取檔名字;
file1.renameTo(file2);將file1移動到file2所在的目錄下,並命名為file2,相當於移動檔案+改名字。
getPath();獲取路徑;
getAbsolutePath();獲取絕對路徑;

InputStream類-讀檔案

讀檔案方法一:迴圈挨個字元往外讀:

// 新建目錄和檔案需要先建立目錄,再建立檔案
public class TestInputStream{ public static void main(String []args){ FileInputStream fis=null; try{//丟擲異常,防止找不到檔案; fis=new FileInputStream("e.txt");//新建InputStream物件 int tmp=0; while((tmp=fis.read())>0){//每次往外讀一個ASCII值,迴圈直至讀完; System.out.println((char)tmp);//ASCII值轉化成字元往外列印; }catch(FileNotFoundException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }finally{//最後必須關閉流,用finally是怕中途中斷執行不到close()方法; try{ fish.close(); }catch(IOException e){ e.printStackTrace(); } } } }

讀檔案方法二:直接讀到byte陣列中,陣列轉型為String後輸出:

// 新建目錄和檔案需要先建立目錄,再建立檔案
public class TestInputStream{
	public static void main(String []args){
	FileInputStream fis=null;
	try{//丟擲異常,防止找不到檔案;
	fis=new FileInputStream("e.txt");//新建InputStream物件
	byte[]b=new byte[fis.available()];//新建長度為fis長度的byte型陣列;
	fis.read(b);//將檔案內容讀到陣列中去;
	String s=new Stirng(b);//將byte陣列轉化成字元;
	System.out.println(s);//輸出字串;
		}catch(FileNotFoundException e){
		e.printStackTrace();
	}catch(IOException e){
	e.printStackTrace();
	}finally{//最後必須關閉流,用finally是怕中途中斷執行不到close()方法;
	try{
	fish.close();
	}catch(IOException e){
	e.printStackTrace();
	}
	}
	}
}

OutputStream-寫檔案

// 新建目錄和檔案需要先建立目錄,再建立檔案
public class TestOutputStream{
	public static void main(String []args){
	FileOutputStream fos=null;
	String s="總有一條蜿蜒在童話裡的河。";
	try{
		fos=new FileOutputStream("b.txt");//替換(加,true的話,為追加)
		byte[]b=s.getBytes();//將要寫的字串轉化為byte陣列
		fos.write(b);//直接將陣列寫入檔案中;
		System.out.println("寫入完成");
		}catch(IOException e){
		e.printStackTrace();
		}finally{
		try{
		fos.close();
		}catch(IOException e){
		e.printStackTrace();
		}
		}
	}
}