File類的三種構造方法
- 文件全路徑
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();
}
}