基本概念
文件,对我们并不陌生,文件是是保存数据的地方,比如大家经常使用的 word 文档,txt文件,excel 文件。它既可以保存一张图片,也可以保存视频,声音...
文件流
文件在程序中是以流的形式来操作的

流:数据在数据源(文件)和程序(内存)之间经历的路径
输入流:数据从数据源(文件)到程序(内存)的路径
输出流:数据从程序(内存)到数据源(文件)的路径
常用的文件操作
创建文件对象相关构造器和方法
相关方法
java
new File(String pathname) // 根据路径构建一个 File 对象
new File(File parent,String child) // 根据父目录文件 + 子路径构建
new File(String parent,String child) // 根据父目录 + 子路径构建
createNewFile // 创建新文件
方式一
java
package com.heima.Hello.File;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
public class FileCreate {
public static void main(String[] args) {
}
// 方式 1
@Test
public void createFile01() throws IOException {
String filePath = "D:\\news1.txt";
File file1 = new File(filePath);
file1.createNewFile();
System.out.println("文件创建成功...");
}
}
方式二
java
import org.junit.Test;
import java.io.File;
import java.io.IOException;
public class FileCreate {
public static void main(String[] args) {
}
// 方式 2
@Test
public void createFile02() throws IOException {
File parentFile = new File("D:\\");
String fileName = "news2.txt";
// 这里的 file ,在 java 中只是一个对象而已
File file = new File(parentFile, fileName);
// 得创建后才能真正出来
file.createNewFile();
System.out.println("文件创建成功...");
}
}
方式三
java
import org.junit.Test;
import java.io.File;
import java.io.IOException;
public class FileCreate {
public static void main(String[] args) {
}
// 方式 3
@Test
public void createFile03() throws IOException {
String parentPath = "D:\\";
String fileName = "news3.txt";
File file = new File(parentPath, fileName);
file.createNewFile();
System.out.println("文件创建成功...");
}
}
获取文件的相关信息
getName
java
import org.junit.Test;
import java.io.File;
public class FileInformation {
public static void main(String[] args) {
}
// 获取文件信息
@Test
public void info() {
// 先创建文件对象
File file = new File("D:\\new1.txt");
System.out.println("文件名字 = " + file.getName());
}
}
getAbsolutePath
java
import org.junit.Test;
import java.io.File;
public class FileInformation {
public static void main(String[] args) {
}
// 获取文件信息
@Test
public void info() {
// 先创建文件对象
File file = new File("D:\\new1.txt");
System.out.println("文件绝对路径 = " + file.getAbsolutePath());
}
}
getParent
java
import org.junit.Test;
import java.io.File;
public class FileInformation {
public static void main(String[] args) {
}
// 获取文件信息
@Test
public void info() {
// 先创建文件对象
File file = new File("D:\\new1.txt");
System.out.println("文件父目录 = " + file.getParent());
}
}
length
java
import org.junit.Test;
import java.io.File;
public class FileInformation {
public static void main(String[] args) {
}
// 获取文件信息
@Test
public void info() {
// 先创建文件对象
File file = new File("D:\\new1.txt");
System.out.println("文件大小 = " + file.length());
}
}
exists
java
import org.junit.Test;
import java.io.File;
public class FileInformation {
public static void main(String[] args) {
}
// 获取文件信息
@Test
public void info() {
// 先创建文件对象
File file = new File("D:\\news1.txt");
// 判断文件是否存在,返回布尔值 true or false
System.out.println("文件是否存在 = " + file.exists());
}
}
isFile
java
import org.junit.Test;
import java.io.File;
public class FileInformation {
public static void main(String[] args) {
}
// 获取文件信息
@Test
public void info() {
// 先创建文件对象
File file = new File("D:\\news1.txt");
// 判断是否是文件存在,返回布尔值 true or false
System.out.println("文件是否存在 = " + file.isFile());
}
}
isDirectory
java
import org.junit.Test;
import java.io.File;
public class FileInformation {
public static void main(String[] args) {
}
// 获取文件信息
@Test
public void info() {
// 先创建文件对象
File file = new File("D:\\news1.txt");
// 判断是否是一个目录,返回布尔值 true or false
System.out.println("文件是否存在 = " + file.isDirectory());
}
}
目录的操作和文件删除
mkdir 创建一级目录、mkdirs创建多级目录、delete 删除空目录或文件
java
import org.junit.Test;
import java.io.File;
public class Directory_ {
public static void main(String[] args) {
}
// 判断 D:\\ 是否存在 news1.txt,存在即删除掉
@Test
public void m1() {
String filePath = "D:\\news1.txt";
File file = new File(filePath);
if (file.exists()) {
if(file.delete()) {
System.out.println(filePath + "删除成功...");
} else {
System.out.println("删除失败...");
}
} else {
System.out.println("文件不存在...");
}
}
}
java
import org.junit.Test;
import java.io.File;
public class Directory_ {
public static void main(String[] args) {
}
// 判断 D:\\ 是否存在 demo2.txt,否则提示不存在
// 这里我们需要体会到,目录也是一个文件
@Test
public void m2() {
String filePath = "D:\\demo2.txt";
File file = new File(filePath);
if (file.exists()) {
if(file.delete()) {
System.out.println(filePath + "删除成功...");
} else {
System.out.println("删除失败...");
}
} else {
System.out.println("该目录不存在...");
}
}
}
创建一级目录使用 mkdir() 方法,创建多级目录使用 mkdirs() 方法
java
import org.junit.Test;
import java.io.File;
public class Directory_ {
public static void main(String[] args) {
}
// 判断 D:\\a\\b\\c 目录是否存在,如果存在就提示不存在,否则就创建
@Test
public void m3() {
String directoryPath = "D:\\a\\b\\c";
File file = new File(directoryPath);
if (file.exists()) {
System.out.println(directoryPath + "存在...");
} else {
if(file.mkdirs()){
System.out.println(directoryPath + "创建成功...");
} else {
System.out.println(directoryPath + "创建失败...");
}
}
}
}