当前位置: 首页 > 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)  

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

http://www.lryc.cn/news/426595.html

相关文章:

  • 低代码: 组件库测试之渲染和元素获取,触发事件,更新表单,验证事件以及异步请求
  • 银河麒麟服务器操作系统Kylin-Server-V10-SP3-2403-Release-20240426-x86_64安装步骤
  • 2024年电赛H题全开源
  • Docker:宿主机可以ping通外网,docker容器内无法ping通外网之解决方法
  • bootchart抓Android系统启动各阶段性能数据
  • 使用 Node.js 和 Express 框架通过网页访问GPIO和嵌入式 Linux 系统中使用 GSM/3G/4G 模块
  • IT 行业的就业情况
  • 如何快速获取麒麟操作系统版本信息
  • git提交规范检查husky
  • LeetCode 919. 完全二叉树插入器
  • C++密码管理器
  • 算法【Java】 —— 滑动窗口
  • Spring Aware接口执行时机
  • android FD_SET_chk问题定位
  • Chapter 39 Python多线程编程
  • STM32(二):GPIO
  • 一文入门mysql 数据库
  • 通义千问( 四 ) Function Call 函数调用
  • 设置idea中放缩字体大小
  • frameworks 之getEvent指令
  • tensorboard显示一片空白解决方案
  • C#编程中,如何实现一个高效的数据排序算法?
  • LookupError: Resource averaged_perceptron_tagger not found.解决方案
  • Leetcode JAVA刷刷站(39)组合总和
  • Spring中AbstractAutowireCapableBeanFactory
  • PostgreSQL的walwriter和archiver进程区别
  • 前端字体没有授权,字体版权检测(是否为方正字体)
  • 在 SOCKS 和 HTTP 代理之间如何选择?
  • C++适配windows和linux下网络编程TCP简单案例
  • OpenDDS的GUID是如何构造的?