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