当前位置: 首页 > news >正文

Java语言程序设计——篇十三(4)

在这里插入图片描述
在这里插入图片描述

       🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

  • 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳🌳
    您的点赞👍、关注➕、收藏⭐️、评论📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻

在这里插入图片描述

java.nio.file.Files类操作

  • 创建、删除目录与文件
  • 文件属性操作
  • 复制、移动目录与文件
  • 小文件的读写
  • 使用Files类创建流对象

创建、删除目录与文件

  • Files类提供了下面的方法创建、删除目录和文件
    static Path createDirectory(Path dir) static Path createFile(Path file)static void delete(Path path)static void deleteIfExists(Path path)
  • 可抛出FileAlreadyExistsException, NoSuchFileException,
    DirectoryNotEmptyException异常。

文件属性操作

  static boolean exists(Path path)  static boolean notExists(Path path) static boolean isReadable(Path path) static boolean isWritable(Path path) static boolean isExecutable(Path path) static boolean isRegularFile(Path path)static long size(Path path) static boolean isDirectory(Path path) static boolean isHidden(Path path) static FileTime getLastModifiedTime(Path path)

复制、移动目录与文件

  • 使用Files类的copy()方法可以复制文件和目录。
   static Path copy(Path source, Path target, CopyOption…options)// StandardCopyOption枚举是CopyOption接口的一个实现:
ATOMIC_MOVE
COPY_ATTRIBUTES
REPLACE_EXISTING
Path source = Paths.get("D:\\study\\demo\\report.txt"),target = Paths.get("D:\\study\\demo\\backup.txt");
try {Files.copy(source, target,StandardCopyOption.REPLACE_EXISTING); 
}catch (NoSuchFileException nse) {nse.printStackTrace();
}catch (IOException ioe) {ioe.printStackTrace();
}
  • 使用Files类的move()方法可以移动或重命名文件或目录,格式如下:
     static Path move(Path source, Path target, CopyOption…options)// StandardCopyOption枚举是CopyOption接口的一个实现:
ATOMIC_MOVE
COPY_ATTRIBUTES
REPLACE_EXISTING
  • 以下代码将C:\temp\backup.bmp文件移到C:\data目录中。
  Path source = Paths.get("C:\\temp\\backup.bmp");Path target = Paths.get("C:\\data\\backup.bmp");try {   Files.move(source,target,StandardCopyOption.REPLACE_EXISTING);}catch(IOException e){e.printStackTrace();} 

小文件的读写

  • Files类提供了对较小的二进制文件和文本文件读取和写入的方法。
   static Path write(Path path, byte[] bytes,OpenOption…options)//StandardOpenOption枚举是OpenOption接口的一个实现:
APPEND, CREATE
CREATE_NEW, DELETE_ON_CLOSE
READ, WRITE, TRUNCATE_EXISTING
  • 下面方法向文件写入若干行。
static Path write(Path path,                                             Iterable<extends CharSequence> lines, Charset cs,   OpenOption…options)
  • 使用下面方法可以从文件读取所有字节或行:
   static byte[] readAllBytes(Path path)static List<String> readAllLines(Path path, Charset cs) 

使用Files类创建流对象

  • 调用Files.newInputStream()获得与文件关联的InputStream对象来读取数据。
  • 调用Files.newOutputStream() 获得与文件关联的OutputStream对象向文件写数据。
  • newInputStream()方法格式如下:
    static InputStream newInputStream(Path path,  OpenOption…options) throws IOException
  Path path = Paths.get("src\\output.dat");try(InputStream input = Files.newInputStream(path,StandardOpenOption.READ) ){// 操作input输入流对象}catch(IOException e){// 处理异常}
  • newOutputStream()方法格式如下:
    static OutputStream newOutputStream(Path path, OpenOption…options) throws IOException
  Path path = Paths.get("src\\output.dat");try(OutputStream output = Files.newOutputStream(path,StandardOpenOption.CREATE,  StandardOpenOption.APPEND);BufferedOutputStream buffered = new   BufferedOutputStream(output)  )
{// 操作output输出流对象}catch(IOException e){// 处理e的异常信息  }
  • 使用Files类的newBufferedReader()和newBufferedWriter()方法也可创建BufferedReader和BufferedWriter对象。
static BufferedReader newBufferedReader(Path path, Charset charset)
static BufferedWriter newBufferedWriter(Path path, Charset charset, OpenOption…options)  

博主用心写,读者点关注,互动传真情,知识不迷路。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 重启人生计划-且随风行
  • HarmonyOS NEXT - 数据持久化存储(key,value进行AES加密处理)
  • 【Spring Boot】全局异常处理
  • 第三章 LVS(DR模式)+keepalived群集【重要】
  • Java技术面试(一面)
  • 单调栈《数组模拟》
  • 极狐 GitLab 依赖扫描:助力开发者管理软件供应链
  • SQL数据抽样:精准洞察的高效策略
  • 开放平台: 签名密钥、回调地址、ip白名单管理。
  • excel导入
  • vue3中引入插件报ts报错Could not find a declaration file for module
  • 学懂C++(二十四):高级教程——C++ 多线程编程中 std::thread 的深入详解
  • java 面试 PDF 资料整理
  • 【vue】浏览器兼容相关
  • 关于近期安卓开发书籍阅读观后感
  • python3.6+scrapy+mysql 爬虫实战
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 03Go 类型总结
  • 2019.2.20 c++ 知识梳理
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • create-react-app项目添加less配置
  • CSS魔法堂:Absolute Positioning就这个样
  • Javascript弹出层-初探
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Nacos系列:Nacos的Java SDK使用
  • React16时代,该用什么姿势写 React ?
  • webpack+react项目初体验——记录我的webpack环境配置
  • WebSocket使用
  • 阿里云前端周刊 - 第 26 期
  • 对象引论
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 使用SAX解析XML
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 函数计算新功能-----支持C#函数
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • ###项目技术发展史
  • #14vue3生成表单并跳转到外部地址的方式
  • #565. 查找之大编号
  • #QT(串口助手-界面)
  • ${ }的特别功能
  • (2022 CVPR) Unbiased Teacher v2
  • (3)llvm ir转换过程
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (四)Linux Shell编程——输入输出重定向
  • (一一四)第九章编程练习
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)大型网站的系统架构
  • (转)项目管理杂谈-我所期望的新人
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • ./configure,make,make install的作用