JAVA 文件類File操作

File類的三種構造方法

  1. 文件全路徑
File file = new File("C:\\ftp\\123456.txt");

2.路徑+文件名稱

File file = new File("C:\\ftp","123456.txt");

3.File+文件名稱

File file = new File("C:\\ftp");
File file1 = new File(file+"123456.txt");

使用createNewFile方法創建文件

方法返回值爲boolean類型,如果創建成功返回true,如果創建失敗返回false

File file = new File("C:\\ftp\\tt.txt");
Boolean b = file.createNewFile();
/*如果路徑只有文件名則會在項目src目錄下創建文件*/
File file = new File("b.txt");
Boolean b = file.createNewFile();

注意點:
1.如果文件存在則會返回false,並不會二次創建進行覆蓋。
2.File沒有具體的目錄只有文件名稱則會創建在項目src目錄下
3.該方法不能創建路徑如果路徑地址錯誤則會直接異常

使用mkdir和mkdirs方法創建文件夾

File file = new File("C:\\ftp\\bbb");
file.mkdir();
File file1 = new File("C:\\ftp\\ccc\\ddd");
file.mkdirs();

注意點:
1.mkdir只能創建一層而mkdirs可以創建多層
2.mkdir只能用來創建文件夾
3.如果不填寫具體的絕對路徑就會創建在項目的src文件夾下

File的delete方法

	File file = new File("C:\\ftp\bbb\\aaa.txt");
	file.delete();

注意點:
1.該方法只能刪除文件和目錄下沒有其他文件和目錄的目錄

File重命名的方法

方法名rnameTo 方法參數類型File

	File file = new File("new File('C:\\ftp\\bbb.txt')");
	file.rnameTo(new File("new File('C:\\ftp\\aaa.txt')"));

注意點:
如果重命名路徑不一樣就會變成剪切

File 的判斷方法

isDirctory()判斷該文件是否是一個目錄
canRead()判斷該文件是否可讀
canWrite()判斷文件是否可以寫入
isFile()判斷是否是一個文件
isHidden()判斷該文件是否是一個隱藏文件
exists()判斷該文件是否存在

File 文件獲取的方法

getAbsolutePath();獲取文件絕對路徑。
(絕對路徑:文件在磁盤中的路徑地址)
getpath();獲取文件相對路徑的方法。
(相對路徑:文件相對與項目中的路徑地址)
getName();獲取文件名字的方法;
(附帶文件後綴名)
getlength();獲取文件字節長度的方法;
(1024個字節等於1kb)
lastModified();獲取文件最後修改時間的方法;
(精確到毫秒)

File file = new File("C:\\ftp\\c.txt");
//獲取文件的絕對路徑
String absolutepath = file.getAbsolute();
//獲取文件的相對路徑
String path = file.getpath();
//獲取文件的名字
String name = file.getName();
//獲取文件的大小
long size = file.getlength();
//獲取文件最後的修改時間
long time= file.lastmodified();
//until包下的Date
Date date = new Date(time);

獲取文件夾下所有文件

getlist();獲取文件夾下的所有文件的名字並以String[]的形式返回;
getFiles();獲取指定文件夾下所有文件並以File[]的形式返回;

	File file = new File("C:\\sqlitedata");
	//或取文件夾下面的所有文件的名
	String[] filenames = file.list();
	for(Stirng filename : filenames){
	System.out.println("====="+filename+"=====");
	}
	//獲取文件夾下所有文件的絕對路徑
	File[] files = file.getFiles();
	for(File file1 :files){
		System.out.println("====="+file1.getAbsolute+"=====");
	}

練習題1:判斷C盤指定目錄下是否存在jpg文件,如果存在則返回其絕對路徑。

	File file = new File(C:\\sqlitedata);
	File[] files = file.getFiles();
	for(File file1 : files){
		String name = file1.getName();
		if(name.endWith(".jpg")){
			System.Out.println(file1.getAbsoulte);
		}
	}

練習題2:遍歷D盤指定文件夾文件重命名爲指定格式。

文件原格式:JAVA零基礎_001_IO流_IO流概述
指定格式爲:001_IO流概述
思路:1.遍歷指定文件夾的所有文件,獲取所有文件對象。
2.從對象獲取文件的名字。
3.對文件的名字做處理。
3.把處理後的文件名字和路徑拼接祖成新路徑
4.file的renameTo方法改變文件的名字

File file = new File("C:\\sqlite");
/*獲取所有文件的對象*/
package com.file;
import java.io.File;
public class File1 {
    public static void main(String[] args) {
        File file = new File("C:\\sqlitedate");
        /*1.獲取所有文件的對象*/
        File[] files = file.listFiles();
        for(File file1 : files){
            /*2.獲取file對象的名字*/
            String name = file1.getName();
            /*3.截取下劃線第一次出現的位置下標*/
            int start1 = name.indexOf("_");
            /*4.截取第二個下劃線出現位置的下標*/
            int end1 = name.indexOf("_",name.indexOf("_")+1);
            /*5.截取文件的序號*/
            String name1 = name.substring(start1+1,end1);
            /*6.從文件的末尾開始截取第一次出現下劃線的位置的下標*/
            int start2 = name.lastIndexOf("_");
            /*7.截取文件後綴以及文件名稱*/
            String name2 = name.substring(start2);
            /*8.把序號和名字拼接成一個新的文件明*/
            String newname = name1+name2;
            /*9.把新的文件名和路徑進行拼接組成新的目標對象*/
            File newfile = new File(file,newname);
            /*10.對文件對象進行重命名更改*/
            file1.renameTo(newfile);
        }
    }
}

用FileOutputstream向指定文件寫入信息

步驟:
1.新建管道輸出流FileOutputstream並指向指定文件
2.把想要寫入的文件轉換爲byte類型的數組
3.把字符寫入文件

package com.file;
import java.io.File;
import java.io.FileOutputStream;
public class File2 {
    public static void main(String[] args) throws Exception{
        /*1.獲取文件輸出流並指向指定文件*/
        FileOutputStream file = new FileOutputStream("C:\\sqlitedate\\aaa.txt");
        String word = "你好";
        /*2.把需要寫入的字符轉換爲byte類型的數組*/
        byte []bytes = word.getBytes();
        /*3.寫入文件*/
        file.write(bytes);
        file.close();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章