Java IO流对文件File操作
芝麻干 人气:0什么是文件
文件,对我们并不陌生,文件是保存数据的地方,比如大家经常使用的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; /** * @author 华子 * 文件的创建 */ 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盘创建多级目录
运行结果:
加载全部内容