Java NIO - File(文件)

Java NIO - File(文件) 首页 / Nio入门教程 / Java NIO - File(文件)

Java NIO提供了Files的实用程序API,该API主要用于通过其静态方法来操作文件和目录。

在Files类中定义了许多方法,这些方法也可以从Java文档中读取。在本教程中,无涯教程试图涵盖Java NIO Files类的所有方法中的一些重要方法。

重要函数

以下是Java NIO Files类中定义的重要方法。

  • createFile(Path filePath,FileAttribute attrs) - Files类提供了使用指定路径创建文件的方法。

Files.CreateFile示例

package com.java.nio;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class CreateFile {
   public static void main(String[] args) {
      //初始化路径对象
      Path path = Paths.get("D:file.txt");
      //创建文件
      try {
         Path createdFilePath = Files.createFile(path);
         System.out.println("Created a file at : "+createdFilePath);
      } 
      catch (IOException e) {
         e.printStackTrace();
      }
   }
}

运行上面代码输出

Created a file at : D:\data\file.txt
  • copy(InputStream in,Path target,CopyOption?options)   - 此方法用于将所有字节从指定的输入流复制到指定的目标文件,并返回读取或写入的字节数作为该参数的long value.LinkOption,具有以下值-

    •     COPY_ATTRIBUTES                - 将属性复制到新文件,如最后修改时间属性。

    •     REPLACE_EXISTING              - 替换现有文件(如果存在)。

    •     NOFOLLOW_LINKS                - 如果文件是符号链接,则复制链接本身而不是链接目标。

Files.Copy示例

package com.java.nio;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.List;
public class WriteFile {
   public static void main(String[] args) {
      Path sourceFile = Paths.get("D:file.txt");
      Path targetFile = Paths.get("D:fileCopy.txt");
      try {
         Files.copy(sourceFile, targetFile,
         StandardCopyOption.REPLACE_EXISTING);
      }
      catch (IOException ex) {
         System.err.format("I/O Error when copying file");
      }
      Path wiki_path = Paths.get("D:fileCopy.txt");
      Charset charset = Charset.forName("ISO-8859-1");
      try {
         List<String> lines = Files.readAllLines(wiki_path, charset);
         for (String line : lines) {
            System.out.println(line);
         }
      } 
      catch (IOException e) {
         System.out.println(e);
      }
   }	
}

运行上面代码输出

To be or not to be?
  • createDirectories(Path dir, FileAttribute<?>...attrs)  - 该方法用于通过创建所有不存在的父目录来使用给定路径创建目录。

  • delete(Path path)                                                                   - 此方法用于从指定路径中删除文件。

  • exists(Path path)                                                                    - 此方法用于判断文件是否存在于指定路径。

  • readAllBytes(Path path)                                                       - 此方法用于从给定路径的文件中读取所有字节,并返回包含从文件中读取的字节数组。

Files.readAllLines示例

package com.java.nio;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class ReadFile {
   public static void main(String[] args) {
      Path wiki_path = Paths.get("D:file.txt");
      Charset charset = Charset.forName("ISO-8859-1");
      try {
         List<String> lines = Files.readAllLines(wiki_path, charset);
         for (String line : lines) {
            System.out.println(line);
         }
      } 
      catch (IOException e) {
         System.out.println(e);
      }
   }	
}

运行上面代码输出

Welcome to file.
  • size(Path path)                                                                          - 此方法用于获取指定路径上文件的大小(以字节为单位)。

  • write(Path path,byte [] bytes,OpenOption…options) - 此方法用于将字节写入指定路径的文件。

Files.write示例

package com.java.nio;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class WriteFile {
   public static void main(String[] args) {
      Path path = Paths.get("D:file.txt");
      String question = "To be or not to be?";
      Charset charset = Charset.forName("ISO-8859-1");
      try {
         Files.write(path, question.getBytes());
         List<String> lines = Files.readAllLines(path, charset);
         for (String line : lines) {
            System.out.println(line);
         }
      } 
      catch (IOException e) {
         System.out.println(e);
      }
   }
}

运行上面代码输出

To be or not to be?

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

趣谈网络协议 -〔刘超〕

程序员的数学基础课 -〔黄申〕

Vue开发实战 -〔唐金州〕

Web协议详解与抓包实战 -〔陶辉〕

小马哥讲Spring核心编程思想 -〔小马哥〕

.NET Core开发实战 -〔肖伟宇〕

Spring编程常见错误50例 -〔傅健〕

深入剖析Java新特性 -〔范学雷〕

程序员职业规划手册 -〔雪梅〕

好记忆不如烂笔头。留下您的足迹吧 :)