File:文件和目录路径名的抽象表示形式
- File 类的实例是不可改变的
- File的常用功能:
- 创建功能 分为相对路径和绝对路径 相对路径是程序所在地址 例如 创建一个a.txt文件 就会在相对路径创建 绝对路径是带盘符的地址 而创建一个"C:\a\b.txt"就会在指定位置创建叫绝对路径
- 创建文件夹mkdir同理 mkdirs就可以创建多级文件夹(“a\b\c”) a->b->c 当父文件夹不存在一并创建
- 删除功能 file.delete();
- 获取功能
- File getAbsoluteFile():以File对象的形式返回当前File对象所有指向的绝对路径
- String getAbsolutePath():返回字符串形式的File对象指向的绝对路径
- String getParent():获取父路径字符串
- File getParentFile():获取父路径对象
- String getName():获取文件、文件夹名
- String getPath():获取路径
- long lastModified():最后修改时间(毫秒) Date d = new Date(file.lastModified) 转换为时间
- long length():返回文件的字节数 只能返回文件字节 不能返回文件夹字节数
- 判断功能
- boolean exists():判断File对象指向的路径是否存在
- boolean isAbsolute(): 判断File对象指向的路径是否是绝对路径
- boolean isDirectory():判断File对象指向的路径是否是文件夹
- boolean isFile(): 判断File对象指向的路径是否是个文件
- boolean isHidden():判断File对象指向的路径是否都是隐藏文件
- 修改功能
- boolean renameTo(File dest):将当前对象所指向的路径修改为指定File所指向的路径
- 注意 修改为的文件路径不能存在 如果存在则修改失败
package _File;
import java.io.File;
public class _File {
public static void main(String[] args) {
//File(String pathname):将指定路径转换为一个File对象,只是将指定文件创建一个对象,其他什么也不会做
File file = new File("C:\\File_Object\\a.txt");//如果没有这个文件 file.createNewFile(); 就创建这个文件 file.mkdir();创建这个名的文件夹
//File(String parent,String child):根据指定的父路径和文件名创建对象
File file1 = new File("C:\\File_Object","a.txt");
//File(File parent,String child):根据指定的父路径对象和文件路径创建File对象
File parent = new File("C:\\File_Object");
File file2 = new File(parent,"a.txt");
}
}
字符流复制一个文本文件
package _File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Copy {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("_File.java");
FileWriter fw = new FileWriter("C:\\copy.java");
int len;
char[] bos = new char[1024];
while((len = fr.read(bos))!= -1) {
fw.write(bos, 0, len);
}
fr.close();
fw.close();
}
}
字节流:
OutputStream InputStream
用字节流复制一个图片 例子
二进制文件只能通过字节流复制 使用windows自带的记事本打开能看懂的东西可以用字符流复制 都不懂的只能用字节流复制
package _File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Copy {
public static void main(String[] args) throws IOException {
FileInputStream fs = new FileInputStream("1.jpg");
FileOutputStream fo = new FileOutputStream("C:\\2.jpg");
int len1 ;//存储读到的字节个数
byte[] bys = new byte[1024];
while((len1=fs.read(bys))!=-1) {
fo.write(bys, 0, len1);
}
fs.close();
fo.close();
}
}