首页 > 编程语言 >java系统与文件操作

java系统与文件操作

时间:2024-01-25 19:22:06浏览次数:27  
标签:文件 java String text File 操作 new 目录 dir

1. 目录文件操作

创建File对象,后续操作皆基于File,而不是String路径

import java.io.File;
import java.io.FilenameFilter;

File dir = new File("C:\\Users\\Desktop");   //目录
File file = new File("C:\\Users\\Desktop\\text.docx");  //文件

        File dir_file = new File("C:\\Users\\zx\\Desktop","text.docx");  //分开写
        File Dir_file = new File(dir,"text.docx");  //分开写,但是目录是FIle类型,

1.1. 查看

File file = new File("C:\Users\Desktop\text.docx");

名称路径

  • 获取文件名
    • File.getName() // text.docx
  • 获取路径
    • File.getPath() // C:\Users\Desktop
  • 绝对路径文件名
    • File.getAbsoluteFile() C:\Users\Desktop\text.docx
      -File.getAbsolutePath() 同上
  • 父目录(完整路径)
    • File.getParent()

空间

  • .getTotalSpace() //总空间
  • .getUsableSpace() //已用空间
  • .getFreeSpace() //剩余空间

修改时间

  • .lastModified() //上次修改时间

大小

  • .length() //文件大小

1.2. 增删改判

创建

  • File.createNewFile(); //创建file对象指向的文件
  • boolean File.mkdir(); //创建定义的目录,返回是否创建成,
    //需要有权限,目标文件夹已存在也会失败

删除

  • .delete(); //删除文件

修改

  • 修改权限
.setReadOnly()       //改为只读
.setExecutable(true)  // 修改为可执行,参数false则不可执行
.setExecutable(true, true)  // 第一个参数同上,第二个是否只有拥有者有权限
.setReadable(true)   //添加可读权限, 同样可接收第二个参数
.setWritable(true)    //添加可写权限, 同样可接收第二个参数
  • 重命名或移动文件,同mv

    • boolean File.renameTo(File dest); //现有File命名或移动成括号里的File,返回成功或失败
    • new File(fileDir+"/"+name).renameTo(new File(fileDir+"/"+englishName));
  • 路径拼接

    • File类型
      • File file2 = new File(directory, fileName);
    • Path类型
      • Path path = Paths.get(directory, fileName);

判断

.exists()   //是否存在
.isDirectory()   //判断是否是目录
.isFile()    //是否是文件
.isHidden()  //是否隐藏
.isAbsolute()  //是否绝对路径

权限判断

.canRead();  //是否可读
.canWrite(); //是否可写
.canExecute()  //是否可执行

1.3. 遍历筛选

① 遍历

String[] files = dir.list();   //获取当前目录下,全部的目录和文件,只有名称没有路径, 字符串类型
list(FilenameFilter)  //list可接收一个FilenameFilter过滤器

File[] fileObj = dir.listFiles();  //同上, File类型, 直接打印有路径
listFiles()    //可接收两种过滤器

② 筛选

import java.io.FilenameFilter;
import java.io.FileFilter;

实现这两个接口,构造过滤器, 两个接口区别是,accept方法不同
FilenameFilter
boolean accept(File dir, String name)
FileFilter
boolean accept(File pathname)

io

nio

2. 执行系统命令

2.1. Runtime

windows命令要用"cmd /c "开头
linux命令可以直接写,或者以bash等shell开头

2.1.1. exec基础版

使用系统默认环境变量,在当前文件所在目录执行命令
private List exeCmd(){
String[] command={"cmd","/c","dir"};
List result = new ArrayList<>();
try {
Process process = Runtime.getRuntime().exec(command);
//exec重构版 exec(String[] 命令,String[] 环境变量, File 要执行命令的目录 )
InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = "";
while ((line = bufferedReader.readLine()) != null) {
result.add(line);
}
} catch (Exception e) {
log.warn("{}",e);
}
return result;
}

2.1.2. exec加强版

可传入环境变量和要执行命令的目录
private List exeCmd(String[] command,String[] envp,File path){
List result = new ArrayList<>();
try {
Process process = Runtime.getRuntime().exec(command,envp,path);
...

标签:文件,java,String,text,File,操作,new,目录,dir
From: https://www.cnblogs.com/wakevol/p/17598729.html

相关文章

  • 工具类型的项目减少dll_pdb_xml文件的方法
    减少dll文件的数量dll文件是项目中使用到的NuGet包,首先需要去除没有使用的NuGet包。(目前暂无很好的解决方案)然后在NuGet包管理器中为解决方案添加Costura.Fody,根据项目环境选择对应的Costura.Fody版本,再次编译即可将源dll合并到目标exe中。 减少xml和pdb文件的数量用记......
  • java收发邮件
    邮箱协议端口使用jakarta库发送邮件示例importcom.alibaba.fastjson2.JSON;importcom.alibaba.fastjson2.JSONObject;importcom.xin_admin.common.Result;importcom.xin_admin.security.AuthAnnotation;importjakarta.activation.DataHandler;importjakarta.act......
  • 2024年1月Java项目开发指南8:统一数据返回格式
    有时候返回一个字符串,有时候返回一串数字代码,有时候返回一个对象……不过怎么说,我们返回的内容往往具有三个1.消息代码code2.消息内容msg3.数据内容data接下来,我们要编写一个类,通过这个类,实现对所有返回内容进行格式化。先去添加个依赖 <dependency> <groupId>org.p......
  • Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--打开大文件处理
    项目地址:Pdfium.Net:https://github.com/1000374/Pdfium.NetPdfiumViewer:https://github.com/1000374/PdfiumViewerPDFium支持打开文件支持传入文件流加载PDF到内存流(此种方式不占用文件):varstream=newMemoryStream(File.ReadAllBytes(fileName));vardoc=PdfDocumentGdi.......
  • 无涯教程-Rust - 文件输入&输出
    除了对控制台进行读写之外,Rust还允许对文件进行读写,File结构代表一个文件,它允许程序对文件执行读写操作,File结构中的所有方法均返回io::Result枚举的变体。写入文件以下程序创建文件"data.txt",create()方法用于创建文件,如果文件创建成功,该方法将返回文件句柄,最后一行write_a......
  • Stream流操作示例
    1privatestaticdoubleoneMoney;2privatestaticdoubletwoMoney;3privatestaticdoublesumMoney;45publicstaticvoidmain(String[]args){6List<Employee>list1=newArrayList<>();7list1.add(new......
  • 笨办法学 Java(四)
    原文:LearnJavaTheHardWay译者:飞龙协议:CCBY-NC-SA4.0练习55:记录数组记录很棒,数组更好,但是当你把记录放入数组时,这个生活中几乎没有你不能编码的东西。1classStudent2{3Stringname;4intcredits;5doublegpa;6}78publicclass......
  • Linux根目录下各文件目录的作用
    Linux根目录下各文件目录的作用bin用户二进制可执行文件boot系统启动引导文件dev[device]系统中使用的外部设备,但不是放的外部设备的驱动。一个访问这些外部设备端口如:/dev/cdrom可以看见光驱中的文件etc整个系统配置文件相当于C:\windwos\System32\drivers,用来存放......
  • 2024年1月Java项目开发指南7:增删改查与接口测试
    我们之前,是从Controller层写到Service层,然后mapper层。接下来我们反过来,从mapper层写到Controller层两种方式都可以,你喜欢就行,甚至你先写service层也可以,全凭个人喜欢。在本文中,就不解释太多了,直接给出代码,对于关键地方,我会圈出来。如果有问题,可以直接在本文首发地址(博客园......
  • 三、kubernetes 集群 YAML 文件详解
    1、YAML文件概述k8s集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到YAML格式文件中,我们把这种文件叫做资源清单文件,通过kubectl命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署了。2、YA......