什么是文件
文件,对我们并不陌生,文件是保存数据的地方,比如大家经常使用的word文档,txt文件,exce|文件..都是文件。它既可以保存一-张图片也可以保持视频,声音...
文件流
文件在程序中是以流的形式来操作的。
流:数据在数据源(文件)和程序(内存)之间经历的路径。
输入流:数据从数据源(文件)到程序(内存)的路径。
输出流:数据从程序(内存)到数据源(文件)的路径。
可以把上面的流比作人喝水
从杯子里的水喝进去人的胃里,就是输入流,人把水吐出到杯子里就是输出流。杯子就是磁盘,水就是文件。人就是Java程序,胃就是内存。
常用的文件操作
创建文件
new File(String pathname) //根据路径构建一一个File对象
new File(File parent,String child) //根据父目录文件+子路径构建
File(String parent,String child) //根据父目录+子路径构建
createNewFile创建新文件
直接看代码:
package com.io.file;
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.IOException;
public class FileCreate {
public static void main(String[] args) {
}
// 第一种方法 new File(String path)
@Test
public void create01(){
String filePath = "E:\\news1.txt";
File file = new File(filePath);
try {
file.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
System.out.println("文件创建失败");
}
}
// 第二种方法 newFile(File parent,String path);父目录+子路径构建
@Test
public void create02(){
File parentFile = new File("e:\\");
String fileName = "news2.txt";
// 这里的file对象,只是一个Java对象,保存在内存中
File file = new File(parentFile, fileName);
// 只有createNewFile()了,才会出现在磁盘中
try {
file.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
System.out.println("文件创建失败");
}
}
//方式3 new File(String parent, String child) //根据父日录+子路径构建
@Test
public void create03(){
String parentFile = "e:\\";
String childFile = "news\\news3.txt";
File file = new File(parentFile, childFile);
try {
file.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
System.out.println("文件创建失败");
}
}
}
运行结果:
第一种方法就是在E盘中创建了一个news1.txt文件
第二种方法通过父目录文件+子路径构建在E盘新建了一个 news2.txt 文件。
第三种就是 根据父目录+子路径构建 在E盘中的news文件夹里创建了一个new3.txt文件
如图:
获取文件信息
getName、getAbsolutePath、 getParent、 length、 exists、 isFile、isDirectory
获取上面创建的new3.txt文件。
直接看代码:
package com.io.file;
import org.junit.jupiter.api.Test;
import java.io.File;
public class FileInformation {
public static void main(String[] args) {
}
// 获取文件信息
@Test
public void info(){
// 先创建文件对象
File file = new File("E:\\news\\news3.txt");
// 调用对应的方法,得到对应的信息
// getName、getAbsolutePath、getParent、Length、exists、isFile、isDirectory
System.out.println("文件名称:"+file.getName());
System.out.println("文件绝对路径:"+file.getAbsolutePath());
System.out.println("文件父级目录:"+file.getParent());
System.out.println("文件大小:"+file.length());
System.out.println("文件是否存在:"+file.exists());//true
System.out.println("是不是一个文件:"+file.isFile());//true
System.out.println("是不是一个目录:"+file.isDirectory());//false
}
}
运行结果:
目录的操作和文件删除
mkdir创建一级目录、mkdirs创建多级目录、delete删除空目录或文件
直接看案例:
package com.io.file;
import org.junit.jupiter.api.Test;
import java.io.File;
public class Directory {
public static void main(String[] args) {
}
// 判断e:\news1.txt是否存在,如果存在就删除
@Test
public void m1(){
String filePath = "e:\\news1.txt";
File file = new File(filePath);
if(file.exists()){
if(file.delete()){
System.out.println("文件已经删除....");
}else {
System.out.println("文件删除失败...");
}
}else {
System.out.println("该文件不存在...");
}
}
//判断D:\\demo02 这个目录是否存在,存在就删除,否则提示不存在
//这里我们需要体会到,在java编程中,目录也被当做文件
@Test
public void m2(){
String filePath = "D:\\demo02";
File file = new File(filePath);
if(file.exists()){
if(file.delete()){
System.out.println("目录已经删除....");
}else {
System.out.println("目录删除失败...");
}
}else {
System.out.println("该目录不存在...");
}
}
//判断D:\\demo\\a\\b\\c 日录是否存在,如果存在就提示经存在,否则就创建
@Test
public void m3(){
String directoryPath = "D:\\demo\\a\\b\\c";
File file = new File(directoryPath);
if(file.exists()){
System.out.println("目录已经存在");
}else {
if(file.mkdirs()){
System.out.println("创建成功");
}else {
System.out.println("创建失败");
}
}
}
}
m1方法删除news.txt文件,m2在D盘创建一级目录demo,m3在D盘创建多级目录
运行结果:
到此这篇关于Java IO流对文件File操作的文章就介绍到这了,更多相关Java操作File内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!