程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> java本地文件操作

java本地文件操作

編輯:JAVA綜合教程

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();
        }

    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved