Java NIO提供了Files的实用程序API,该API主要用于通过其静态方法来操作文件和目录。
在Files类中定义了许多方法,这些方法也可以从Java文档中读取。在本教程中,无涯教程试图涵盖Java NIO Files类的所有方法中的一些重要方法。
以下是Java NIO Files类中定义的重要方法。
createFile(Path filePath,FileAttribute attrs) - Files类提供了使用指定路径创建文件的方法。
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 - 如果文件是符号链接,则复制链接本身而不是链接目标。
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) - 此方法用于从给定路径的文件中读取所有字节,并返回包含从文件中读取的字节数组。
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) - 此方法用于将字节写入指定路径的文件。
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?
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)