目录
File
成员方法(判断和获取)
成员方法(创建和删除)
成员方法(获取并遍历)
IO流
FileOutputStream
FileInputStream
文件拷贝
前言:学习JAVA的第十八天(基础)-CSDN博客
File
- File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径
- 这个路径可以是存在的,也允许是不存在的
方法:
方法名 | 说明 |
---|---|
File(String pathname) | 根据文件路径创建文件对象 |
File(String parent,String child) | 根据父路径名字符串和子路径名字符串创建文件对象 |
File(File parent,String chlid) | 根据父路径对应文件对象和子路径名字符串创建文件对象 |
测试类
public static void main(String[] args) {//根据文件路径创建文件对象String str = "D:\\FileDemo\\a.txt";File f1 = new File(str);System.out.println(f1);//D:\FileDemo\a.txt//父级路径:D:\FileDemo//子级路径:a.txtString parent = "D:\\FileDemo";String child = "a.txt";File f2 = new File(parent,child);System.out.println(f2);//D:\FileDemo\a.txt//把File表示的路径和String表示的进行拼接File parent2 = new File("D:\\FileDemo");String child2 = "a.txt";File f3 = new File(parent2,child2);System.out.println(f3);//D:\FileDemo\a.txt}
成员方法(判断和获取)
方法名称 | 说明 |
---|---|
boolean isDirectory() | 判断此路径名表示的File是否为文件夹 |
boolean isFile() | 判断此路径名表示的File是否为文件 |
boolean exists() | 判断此路径名表示的File是否存在 |
long length() | 返回文件的大小(单位字节) |
String getAbsolutePath() | 返回文件的绝对路径 |
String getPath() | 返回定义文件使用的路径 |
String getName() | 返回文件的名称,带后缀 |
long lastModified() | 返回文件最后的修改时间(时间毫秒值) |
成员方法(创建和删除)
方法名 | 说明 |
---|---|
boolean createNewFile() | 创建一个新的空的文件 |
boolean mkdir() | 创建单级文件夹 |
boolean mkdirs() | 创建多级文件夹 |
boolean delete() | 删除文件、空文件夹 |
成员方法(获取并遍历)
方法名 | 说明 |
static File[] listRoots() | 列出可用的文件系统根 |
String[] list() | 获取当前路径下的所有内容 |
String[] list(FilenameFilter filter) | 利用文件名过滤器获取当前路径下的所有内容 |
File[] listFiles() | 获取当前路径下的所有内容 |
File[] listFiles(FileFilter filter) | 利用文件名过滤器获取当前路径下的所有内容 |
File[] listFiles(FilenameFilter filter) | 利用文件名过滤器获取当前路径下的所有内容 |
IO流
存储和读取数据的解决方案
IO流分类:
IO流体系:
FileOutputStream
操作本地文件的字节输出流,可以把程序中的数据写到本地文件中。
测试类
public static void main(String[] args) throws IOException {//创建对象FileOutputStream fos = new FileOutputStream("student\\a.txt");//书写数据fos.write(97);//释放资源fos.close();}
public static void main(String[] args) throws IOException {//创建对象 续写FileOutputStream fos = new FileOutputStream("student\\a.txt",true);//换行符String str = "\r\n";fos.write(str.getBytes());//书写数据fos.write(98);//释放资源fos.close();}
FileInputStream
操作本地文件的字节输入流,可以把本地文件中的数据读取到程序中来。
测试类
public static void main(String[] args) throws IOException {//创建对象FileInputStream fis = new FileInputStream("student\\a.txt");//循环读出数据int b = 1;while((b=fis.read() )!= -1){System.out.print((char) b);//abcd}//释放资源fis.close();}
文件拷贝
小文件拷贝,边读边写(字节)。
测试类
public static void main(String[] args) throws IOException {//创建对象FileInputStream fis = new FileInputStream(" D:\\java\\copy\\preview.jpg");FileOutputStream fos = new FileOutputStream("student\\copy.jpg");//边读边写int b ;while((b=fis.read()) != -1){fos.write(b);}//释放资源fos.close();fis.close();}
大文件拷贝,一次读写多个字节数据
测试类
public static void main(String[] args) throws IOException {//创建对象FileInputStream fis = new FileInputStream(" D:\\java\\java.mp4");FileOutputStream fos = new FileOutputStream("student\\copy.mp4");//边读边写int len;//一次读3Mbyte[] bytes = new byte[1024 * 1024 * 3 ];while((len = fis.read(bytes)) != -1){//读多少写多少fos.write(bytes,0,len);}//释放资源fos.close();fis.close();}