java本地檔案操作

來源:互聯網
上載者:User

java本地檔案操作
一、File類簡介

在java中所有的事務都是對象,檔案也不例外,java中使用File類表示檔案(包括檔案和檔案夾).

二、檔案的建立、刪除、重新命名2.1檔案建立

首先建立一個File對象f1, 傳入的string參數為檔案名稱,然後使用createNewFile()方法即可建立該檔案,檔案建立成功createNewFile()方法會返回true,建立失敗會返回false.如果檔案已經存在會建立失敗,可用exists() 方法檢測檔案是否存在。

package ucas.file.test;import java.io.File;import java.io.IOException;public class FileDemo01 {    public static void main(String[] args) {        File f1 = new File("Test.txt");        try {            if(f1.exists()){                System.out.println("檔案已存在無須建立!");            }else{                if (f1.createNewFile()) {                    System.out.println("檔案建立成功!");                }else{                    System.out.println("檔案建立失敗!");                }            }        } catch (IOException e) {            e.printStackTrace();        }    }}
2.2檔案刪除

檔案刪除使用delete()方法。

package ucas.file.test;import java.io.File;public class FileDeete {    public static void main(String[] args) {        File f1 = new File("Test.txt");        if (f1.exists() == false) {            System.out.println("檔案不存在,刪除失敗!");        } else {            if (f1.delete()) {                System.out.println("刪除成功!");            }else{                System.out.println("刪除失敗");            }        }    }}
2.3檔案重新命名

在src目錄下存在一個Test.txt文字檔,修改檔案名稱:

package ucas.file.test;import java.io.File;public class FileRename {    public static void main(String[] args) {         File f1=new File("src/Test.txt");         File f2=new File("src/TestTwo.txt");         f1.renameTo(f2);    }}
三、檔案夾的建立、刪除、重新命名3.1建立檔案夾

建立檔案夾使用mkdir()方法:

package ucas.file.test;import java.io.File;public class FileFolder {    public static void main(String[] args) {          File dir1=new File("src/Folder");          dir1.mkdir();        }}

這樣就走src目錄下建立了一個Folder檔案夾,重新整理後可見.
建立檔案夾時先判斷是否存在,這樣更加規範:

package ucas.file.test;import java.io.File;public class FileFolder {    public static void main(String[] args) {          File dir1=new File("src/Folder");          if(dir1.exists()){              System.out.println("檔案夾已存在!");          }else{              if(dir1.mkdir()){                                 System.out.println("檔案夾建立成功");              }else{                  System.out.println("檔案夾建立失敗");              }          }    }}
3.2建立多級檔案夾

建立含義子檔案夾的檔案夾使用mkdirs()函數:

File dir1=new File("Folder/one/two");dir1.mkdirs()
3.3檔案夾的刪除

刪除檔案夾使用delete()函數,但是對於非空檔案夾不能一次性刪除
刪除非空檔案夾,可以採用遞迴的思想:

public static void deleteFolder(File dir) {        File dirFile[] = dir.listFiles();        for (int i = 0; i < dirFile.length; i++) {            if (dirFile[i].isDirectory()) {                deleteFolder(dirFile[i]);            }            dirFile[i].delete();        }    }
四、檔案屬性的讀取
package ucas.file.demo;import java.io.File;public class FileDemo3 {    public static void main(String[] args) {        // 檔案屬性的讀取        File file = new File("text.txt");        // 判斷檔案是否存在        System.out.println("判斷檔案是否存在:" + file.exists());        // 讀取檔案名稱        System.out.println("讀取檔案名稱:" + file.getName());        // 讀取檔案路徑        System.out.println("讀取檔案路徑:" + file.getPath());        // 讀取檔案絕對路徑        System.out.println("讀取檔案絕對路徑:" + file.getAbsolutePath());        // 讀取檔案父級路徑        System.out.println("父級檔案路徑:" + new File(file.getAbsolutePath()).getParent());        // 讀取檔案大小        System.out.println("檔案大小:" + (float) file.length() / 1000 + "Kb");        // 檔案是否被隱藏        System.out.println("檔案是否被隱藏:" + file.isHidden());        // 檔案是否可讀        System.out.println("檔案是否可讀:" + file.canRead());        // 檔案是否可寫        System.out.println("檔案是否可寫:" + file.canWrite());        //判斷是否為檔案夾        System.out.println("判斷是否為檔案夾:"+file.isDirectory());    }}
五、檔案屬性的設定

檔案可讀、可寫、唯讀方式設定:

           //將檔案屬性設定為可寫:            file.setWritable(true);            //將檔案屬性設定為可讀:            file.setReadable(true);            //設定檔案唯讀:            file.setReadOnly();
六、遍曆檔案夾
package ucas.file.demo;import java.io.File;public class FileDemo5 {    public static void main(String[] args) {        // 遍曆檔案夾        //File dir=new File("/Users/yaopan/Documents");        File dir=new File("../");        printFiles(dir,1);    }    public static void  printFiles(File dir,int tab){        if(dir.isDirectory()){            File next[]=dir.listFiles();            for (int i = 0; i < next.length; i++) {                for(int j=0;j

輸出結果:

|--.classpath|--.DS_Store|--.project|--.settings|--|--org.eclipse.jdt.core.prefs|--bin|--|--.DS_Store|--|--Folder|--|--|--one|--|--|--|--two|--|--TestTwo.txt|--|--ucas|--|--|--collection|--|--|--|--demo|--|--|--|--|--HashSetDemo.class|--|--|--|--|--IteratorDemo.class|--|--|--|--|--ListDemo.class|--|--|--|--|--MapDemo01.class|--|--|--|--|--SetDemo.class|--|--|--|--|--VectorDemo.class|--|--|--file|--|--|--|--demo|--|--|--|--|--FileDemo1.class|--|--|--|--|--FileDemo2.class|--|--|--|--|--FileDemo3.class|--|--|--|--|--FileDemo4.class|--|--|--|--|--FileDemo5.class|--|--|--|--|--FileDemo6.class|--|--|--|--test|--|--|--|--|--FileDeete.class|--|--|--|--|--FileDemo01.class|--|--|--|--|--FileFolder.class|--|--|--|--|--FileRename.class|--|--|--xml|--|--|--|--demo|--|--|--|--|--XmlDemo1.class|--My Folder|--|--two|--|--|--three|--src|--|--.DS_Store|--|--Folder|--|--|--1.txt|--|--|--1副本 2.txt|--|--|--1副本 3.txt|--|--|--1副本 4.txt|--|--|--1副本 5.txt|--|--|--1副本 6.txt|--|--|--1副本 7.txt|--|--|--1副本 8.txt|--|--|--1副本 9.txt|--|--|--1副本.txt|--|--|--one|--|--TestTwo.txt|--|--ucas|--|--|--collection|--|--|--|--demo|--|--|--|--|--HashSetDemo.java|--|--|--|--|--IteratorDemo.java|--|--|--|--|--ListDemo.java|--|--|--|--|--MapDemo01.java|--|--|--|--|--SetDemo.java|--|--|--|--|--VectorDemo.java|--|--|--file|--|--|--|--demo|--|--|--|--|--FileDemo1.java|--|--|--|--|--FileDemo2.java|--|--|--|--|--FileDemo3.java|--|--|--|--|--FileDemo4.java|--|--|--|--|--FileDemo5.java|--|--|--|--|--FileDemo6.java|--|--|--|--test|--|--|--|--|--FileDeete.java|--|--|--|--|--FileDemo01.java|--|--|--|--|--FileFolder.java|--|--|--|--|--FileRename.java|--|--|--xml|--|--|--|--demo|--|--|--|--|--XmlDemo1.java|--tangshi.txt|--tangshi2.txt|--Test.txt|--text.txt
七、檔案的簡單讀寫

工程目錄下放一個tangshi.txt,裡面輸入文字,讀取輸出與寫入:

package ucas.file.demo;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;public class FileDemo6 { public static void main(String[] args) { // 檔案的簡單讀和寫 File file = new File("tangshi.txt"); try { FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader bfr = new BufferedReader(isr); String line; while ((line = bfr.readLine()) != null) { System.out.println(line); } bfr.close(); isr.close(); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } File file2 = new File("tangshi2.txt"); try { FileOutputStream fos = new FileOutputStream(file2); OutputStreamWriter osq = new OutputStreamWriter(fos); BufferedWriter bfw = new BufferedWriter(osq); bfw.write("登鸛雀樓\n"); bfw.write("唐 王之渙\n"); bfw.write("白日依山盡,黃河入海流。\n"); bfw.write("白日依山盡,黃河入海流。\n"); bfw.close(); osq.close(); fos.close(); System.out.println("寫入完成!"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.