Java教程 第78页

Java Jar清单

Java IO教程 – Java Jar清单 清单文件 JAR文件可以可选地在META-INF目录中包含名为MANIFEST.MF的清单文件。 清单文件包含有关JAR文件及其条目的信息。 清单文件可以包含有关JAR文件的CLASSPATH设置及其主条目类的信息。 主条目类是具有启动独立应用程序的main()方法的类,包的版本信息等。 清单文件被分成由空白行分隔的部分。每个部分包含名称 – 值对。 一个新行分隔每个名称/值对。冒号分隔名称及其对应的值。 清单文件必须以新行结束。以下是样本清单文件: Manifest-Version: 1.0 Created-By: 1.8.0_20-ea-b05 (Oracle Corporation) Main-Class: com.w3cschool.Main Profile: compact1 上面的清单文件有一个具有四个属性的部分: Manifest-Version Created-By Main-Class Profile Jar清单文件中的节 清单文件中有两种类型的节:主节和各个节。 空行必须分隔任何两个部分。主节中的条目适用于整个JAR文件。单个部分中的条目适用于特定条目。 单个节中的属性覆盖主节中的相同属性。 单个条目以“Name”属性开头,其值是JAR文件中条目的名称,后面是该条目的其他属性。 Manifest-Version: 1.0 Created-By: 1.6.0 (Sun Microsystems Inc.) Main-Class: com.w3cschool.Main Sealed: true Name: book/data/ Sealed: false Name: images/logo.bmp Content-Type: image/bmp 上面的清单文件包含三个部分:一个主要部分和两个单独部分。 在两个部分之间有一个空白行。 第一个个别部分指示包装书/数据未被密封。这个单独的section属性“Sealed:false”将覆盖主要部分的属性“Sealed:true”。 第二个单独部分用于名为images / logo.bmp的条目。它表示条目的内容类型是bmp类型的映像。 Jar清单文件中的值 jar命令可以创建默认清单文件并将其添加到JAR文件。默认清单文件仅包含两个属性:Manifest-Version和Created-By。 您可以使用选项 M 告诉jar工具忽略默认的清单文件。 以下命令将创建一个test.jar文件,而不添加默认清单文件: jar cMf test.jar * jar命令为您提供了自定义清单文件内容的选项。 选项m指定具有清单文件内容的文件。 jar命令将从指定的清单文件读取名称/值对,并将其添加到MANIFEST.MF文件。 假设你有一个名为manifest.txt的文件,其中有一个属性条目。请确保在文件末尾添加新行。文件内容如下: Main-Class: com.w3cschool.Main 要通过将当前工作目录中的所有类文件包含在新的test.jar文件中,从manifest.txt文件中添加Main-Class属性值,请执行以下命令: jar cfm test.jar manifest.txt *.class 指定选项m时,还必须指定清单文件名。您指定新的JAR文件名和清单文件名的顺序必须与选项m和f的顺序匹配。 例如,您可以通过以不同的顺序指定f和m选项来更改上述命令,如下所示: jar cmf manifest.txt test.jar *.class 此命令将向test.jar文件添加具有以下内容的清单文件: Manifest-Version: 1.0 Created-By: 1.8.0_20-ea (Oracle Corporation) Main-Class: com.w3cschool.Main 如果未在清单文件中指定清单文件和创建者属性,该工具将添加它们。它默认的清单版本为1.0。创建者默认为您使用的JDK版本。 主类 以下代码显示如何使用java命令运行Java程序,并指定具有main()方法的类名,如下所示 java com.w3cschool.Main com.w3cschool是包名称。 我们可以使用-jar选项与java命令运行jar文件,如下所示: java -jar test.jar 当您运行上述命令时,JVM将在test.jar文件中的MANIFEST.MF文件中查找Main-Class属性的值,并尝试运行该类。 如果您在test.jar文件中未包含Main-Class属性,则上述命令将生成错误。 我们还可以在清单文件中添加Main-Class属性值,而无需创建我们自己的清单文件。 在创建/更新jar文件时,使用选项e与jar工具。 以下命令将在test.jar文件中的MANIFEST.MF文件中添加com.w3cschool.Main作为Main-Class的值: jar cfe test.jar com.w3cschool.Main *.class 以下命令将使用选项u for...

Java Jar文件

Java IO教程 – Java Jar文件 JAR文件格式 JAR(Java Archive)是基于ZIP文件格式的文件格式。 它用于捆绑Java应用程序或小程序的资源,类文件,声音文件,图像等。它还提供数据压缩。 一个JAR文件作为一种特殊类型的ZIP文件。您可以对JAR文件的内容进行数字签名,以提供安全性。它提供了一个平台无关的文件格式。 您可以使用JAR API在Java程序中处理JAR文件。 JAR文件可以具有可选的META-INF目录,以包含包含应用程序配置信息的文件和目录。 META-INF目录 下表列出了META-INF目录中的条目。 名称 类型 目的 MANIFEST.MF File 它包含扩展和包相关数据。 INDEX.LIST File 它包含软件包的位置信息。类加载器使用它来加快类搜索和加载过程。 X.SF File X是基本文件名。它存储jar文件的签名。 X.DSA File X是基本文件名。它存储相应签名文件的数字签名。 /services Directory 此目录包含所有服务提供程序配置文件。       JAR工具 JDK提供了一个jar工具来创建和操作JAR文件。您还可以使用java.util.jar包中的类使用Java API创建和操作JAR文件。 JAR API有一些新类来处理清单文件。 Manifest类表示清单文件。 要使用jar工具创建JAR文件,许多命令行选项都可用。 以下代码列出了jar工具的命令行选项。 选项 描述 -c 创建一个新的JAR文件。 -u 更新现有的JAR文件。 -x 从JAR文件中提取命名文件或所有文件。 -t 列出JAR文件的目录。 -f 指定JAR文件名。 -m 包括来自指定文件的清单信息。 -M 不要创建清单文件。 -i 为指定的JAR文件生成索引信息。它在JAR文件中的META-INF目录下创建一个INDEX.LIST文件。 -0 不要压缩JAR文件中的条目。只存储它们。选项值为零,表示零压缩。 -e 将指定的类名添加为清单文件主要部分中Main-Class条目的值。 -v 在标准输出上生成详细输出 -C 切换到指定的目录并在JAR文件中包括以下文件。请注意,该选项为大写(C)。小写字母(c)用于指示创建JAR文件选项。 创建JAR文件 使用以下命令创建一个带有两个类文件(名为A.class和B.class)的test.jar JAR文件: jar cf test.jar A.class B.class 在上面的命令中,选项c表示我们正在创建一个新的JAR文件,选项f表示我们正在指定一个JAR文件名,它是test.jar。 在命令结束时,我们可以指定要包括在JAR文件中的一个或多个文件名或目录名。 要查看test.jar文件的内容,请执行以下命令: jar tf test.jar 选项t表示我们对JAR文件的目录感兴趣。 选项f表示我们指定了JAR文件名,在这种情况下是test.jar。 上述命令将生成以下输出: META-INF/ META-INF/MANIFEST.MF A.class B.class jar 命令自动为您创建了两个额外的东西:一个名为META-INF的目录和一个名为MANIFEST.MF的文件在META-INF目录中。 以下命令将通过在当前工作目录中包含所有内容来创建test.jar文件。 jar cf test.jar * 以下命令将创建一个JAR文件,其中包含book / archives目录中的所有类文件以及book / images目录中的所有图像。 jar cf test.jar book/archives/*.class book/images 我们可以在创建JAR文件时使用命令行选项指定清单文件。 清单文件是一个文本文件,其中包含您的JAR文件的所有清单条目。 清单文件必须在文件末尾有一个空行。否则,将不处理清单文件中的最后一个条目。 以下命令将在创建test.jar文件(包括当前目录中的所有文件和子目录)时使用manifest.txt文件。 jar cfm test.jar manifest.txt * 上述命令中使用的选项的顺序很重要。 f出现在m之前,我们必须在清单文件名manifest.txt之前指定JAR文件名test.jar。 您可以重写以上命令,如下所示:...

Java Zip文件-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java Zip文件

Java IO教程 – Java Zip文件 Java对ZIP文件格式有直接支持。通常,我们将使用java.util.zip包中的以下四个类来处理ZIP文件格式: ZipEntry ZipInputStream ZipOutputStream ZipFile ZipEntry对象表示ZIP文件格式的归档文件中的条目。 zip条目可以是压缩的或未压缩的。 ZipEntry类具有设置和获取有关ZIP文件中的条目的信息的方法。 ZipInputStream可以从每个条目的ZIP文件读取数据。 ZipOutputStream可以将数据写入每个条目的ZIP文件。 ZipFile是一个从ZIP文件读取条目的实用程序类。 以下代码显示如何创建ZIP文件 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.Deflater; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class Main { public static void main(String[] args) { String zipFileName = "ziptest.zip"; String[] entries = new String[2]; entries[0] = "test1.txt"; entries[1] = "notes" + File.separator + "test2.txt"; zip(zipFileName, entries); } public static void zip(String zipFileName, String[] zipEntries) { try (ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream( new FileOutputStream(zipFileName)))) { // Set the compression level to best compression zos.setLevel(Deflater.BEST_COMPRESSION); for (int i = 0; i < zipEntries.length; i++) { File entryFile = new File(zipEntries[i]); if (!entryFile.exists()) { System.out.println("The entry file " + entryFile.getAbsolutePath()...

Java Zip字节数组-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java Zip字节数组

Java IO教程 – Java Zip字节数组 校验和 Java在java.util.zip包中提供了一个Adler32类来计算数据字节的Adler-32校验和。 我们需要调用这个类的update()方法将字节传递给它。 在同一个包中还有另一个名为CRC32的类,它允许您使用CRC32算法计算校验和。 以下代码说明如何使用Adler32和CRC32类来计算校验和。 import java.util.zip.Adler32; import java.util.zip.CRC32; public class Main { public static void main(String[] args) throws Exception { String str = "HELLO"; byte[] data = str.getBytes("UTF-8"); System.out.println("Adler32 and CRC32 checksums for " + str); // Compute Adler32 checksum Adler32 ad = new Adler32(); ad.update(data); long adler32Checksum = ad.getValue(); System.out.println("Adler32: " + adler32Checksum); // Compute CRC32 checksum CRC32 crc = new CRC32(); crc.update(data); long crc32Checksum = crc.getValue(); System.out.println("CRC32: " + crc32Checksum); } } 上面的代码生成以下结果。 压缩字节数组 我们可以使用java.util.zip包中的Deflater和Inflater类来分别压缩和解压缩字节数组中的数据。 我们可以使用Deflater类中的一个常量来指定压缩级别。 这些常数是BEST_COMPRESSION,BEST_ SPEED,DEFAULT_COMPRESSION和NO_COMPRESSION。 最佳速度意味着较低的压缩比,最好的压缩意味着较慢的压缩速度。 Deflater compressor = new Deflater(Deflater.BEST_COMPRESSION); 默认情况下,压缩数据使用Deflater对象将以ZLIB格式。 要以GZIP或PKZIP格式压缩数据,请通过在构造函数中使用布尔标志为true来指定。 // Uses the best speed compression and GZIP format Deflater compressor = new Deflater(Deflater.BEST_SPEED, true); 以下代码显示如何使用Deflater和Inflater类压缩和解压缩字节数组 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.DataFormatException; import java.util.zip.Deflater; import java.util.zip.Inflater;...

Java 路径-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 路径

Java IO教程 – Java路径 Path 对象表示文件系统中文件,目录和符号链接的路径。 Path 是java.nio.file包中的一个接口。 当我们创建一个Path对象时,路径不一定存在。 Path 可以使用旧的java.io.File apI。我们可以使用File类的方法toPath()从File对象中获取一个Path对象 我们可以使用Path对象的toFile()方法从Path对象中获取File对象。 我们可以对Path对象执行两种操作: 路径操作 文件操作 我们可以使用 Path 来访问路径的组件,例如文件名,根名等。 我们可以比较和检查路径。例如,检查路径以.txt结尾,比较两个路径是否相同,检查路径是绝对路径还是相对路径等。我们还可以组合和解析路径。 我们需要使用 Files 类在 Path 对象上执行文件I/O操作。 创建路径对象 FileSystem对象充当工厂来创建Path对象 FilePath中的getPath()方法创建一个Path对象。 以下代码在Windows上为文件路径C:\Java_Dev\test1.txt创建一个Path对象: Path p1 = FileSystems.getDefault().getPath("C:\\Java_Dev\\test1.txt"); 我们可以在构造Path对象时将路径的组件单独传递给getPath()方法。 以下语句创建一个Path对象以表示Windows上的C:\Java_Dev\test1.txt路径: Path p2 = FileSystems.getDefault().getPath("C:", "Java_Dev", "test1.txt"); Paths 类可以从路径字符串或URI的组件创建 Path 对象。 Paths.get()静态方法创建一个Path对象。 以下创建 Path 对象来表示相同的路径C:\Java_Dev\test1.txt: Path p3 = Paths.get("C:\\Java_Dev\\test1.txt"); Path p4 = Paths.get("C:", "Java_Dev", "test1.txt"); 我们可以从一个空路径创建一个 Path 对象,例如Paths.get(“”)。具有空路径的Path对象是指与当前工作目录相同的默认目录。 路径的组件 文件系统中的路径由一个或多个组件组成。 getNameCount()方法返回除了根之外的Path对象中的组件数量。 例如,路径C:\Java_Dev\test1.txt由三个组件组成:C:的根和名为Java_Dev和test1.txt的两个组件。这种情况下,getNameCount()方法将返回2。 getName(int index)方法返回指定索引处的组件名称。最靠近根的组件的索引为0。 离根最远的组件的索引为count – 1.在路径中。 C:\Java_Dev\test1.txt,Java_Dev组件的索引为0,test1.txt组件的索引为1。 getParent()方法返回路径的父代。如果路径没有父级,则返回null。 路径C:\Java_Dev\test.txt的父目录是C:\Java_Dev。 相对路径test.txt没有父级。 getRoot()方法返回路径的根。如果路径没有根,它返回null。 例如,Windows上的路径C:\Java_Dev\test1.txt具有C:\作为其根。 getFileName()方法返回由路径表示的文件名。 如果路径没有文件名,则返回null。文件名是根的最远组件。例如,在路径C:\Java_Dev\test1.txt中,test1.txt是文件名。 我们可以通过使用isAbsolute()方法来检查路径是否代表绝对路径。 路径不必存在以获取有关其组件的信息。 以下代码显示了如何访问Path对象的组件。 import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) { Path p1 = Paths.get("C:\\Java_Dev\\test1.txt"); printDetails(p1); Path p2 = Paths.get("test1.txt"); printDetails(p2); } public static void printDetails(Path p) { System.out.println("Details for path: " + p); int...

Java 路径操作-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 路径操作

Java IO教程 – Java路径操作 比较路径 我们可以基于它们的文本表示来比较两个Path对象的相等性。 equals()方法通过比较它们的字符串形式来测试两个Path对象的相等性。 等式测试是否区分大小取决于文件系统。 以下代码显示如何比较Windows路径: import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws Exception { Path p1 = Paths.get("C:\\Java_Dev\\test1.txt"); Path p2 = Paths.get("C:\\Java_Dev\\LUCI1.TXT"); Path p3 = Paths.get("C:\\Java_Dev\\..\\Java_Dev\\test1.txt"); boolean b1 = p1.equals(p2); System.out.println(b1); boolean b2 = p1.equals(p3); System.out.println(b2); } } equals()方法在不解析实际文件引用的情况下以文本方式比较两个路径,并且不会测试文件系统中是否存在路径。 Path接口实现java.lang.Comparable接口。我们可以使用它的compareTo()方法来与另一个Path对象进行文本比较。 compareTo()方法返回一个int值。 0 – 当两条路径相等时 小于0 – 路径小于指定的路径 大于0 – 路径大于指定的路径 上面的代码生成以下结果。 例子 以下代码显示如何使用compareTo()方法: import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws Exception { Path p1 = Paths.get("C:\\Java_Dev\\test1.txt"); Path p2 = Paths.get("C:\\Java_Dev\\Test1.txt"); Path p3 = Paths.get("C:\\Java_Dev\\..\\Java_Dev\\test1.txt"); int v1 = p1.compareTo(p2); System.out.println(v1); int v2 = p1.compareTo(p3); System.out.println(v2); } } 我们可以使用endsWith()和startsWith()方法分别测试路径是否以给定路径结尾和开始。 上面的代码生成以下结果。 例2 以下代码显示了如何在路径中使用endsWith()和startsWith()方法。 import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[]...

Java 符号链接

Java IO教程 – Java符号链接 符号链接包含对另一个文件或目录的引用。 符号链接引用的文件称为符号链接的目标文件。 符号链接上的操作对应用程序是透明的。我们可以使用java.nio.file.Files类处理符号链接。 isSymbolicLink(Path p)方法检查指定路径指定的文件是否是符号链接。 文件的createSymbolicLink()方法(可能不是在所有平台上都支持)创建符号链接。 import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws Exception { Path existingFilePath = Paths.get("C:\\Java_Dev\\test1.txt"); Path symLinkPath = Paths.get("C:\\test1_link.txt"); Files.createSymbolicLink(symLinkPath, existingFilePath); } } 默认情况下,Java NIO API遵循符号链接。我们可以指定是否要遵循符号链接。使用枚举常量LinkOption来指示不遵循符号链接的选项。 NOFOLLOW_LINKS。 LinkOption枚举在java.nio.file包中声明。支持此选项的方法让我们传递LinkOption类型的参数。 我们可以使用Files类的createLink(Path newLink,Path existingPath)方法来创建硬链接。

Java 文件-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 文件

Java IO教程 – Java文件 java.nio.file.Files 包含所有允许我们对Path对象执行大多数文件操作的静态方法。 创建新文件 文件可以创建常规文件,目录,符号链接和临时文件/目录。 大多数方法接受FileAttribute类型的varargs参数,这允许我们指定文件属性。 createFile()方法创建一个新的常规文件。创建的新文件为空。 如果文件已存在,或父目录不存在,文件创建将失败。 以下代码显示如何创建新文件。 import java.io.IOException; import java.nio.file.FileAlreadyExistsException; import java.nio.file.Files; import java.nio.file.NoSuchFileException; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) { Path p1 = Paths.get("test.txt"); try { Files.createFile(p1); System.out.format("File created: %s%n", p1.toRealPath()); } catch (FileAlreadyExistsException e) { System.out.format("File %s already exists.%n", p1.normalize()); } catch (NoSuchFileException e) { System.out.format("Directory %s does not exists.%n", p1.normalize() .getParent()); } catch (IOException e) { e.printStackTrace(); } } } 上面的代码生成以下结果。 创建目录 createDirectory()和createDirectories()方法创建一个新目录。 如果父目录不存在,createDirectory()方法将失败。 createDirectories()方法创建不存在的父目录。 createTempDirectory()和createTempFile()方法分别创建一个临时目录和一个临时文件。 以下代码显示了如何创建临时文件和目录。 import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws Exception { String dirPrefix = "KDir"; Path tDir = Files.createTempDirectory(dirPrefix); System.out.println("Temp directory: " + tDir); String fPrefix = "Header_";...

Java 文件属性-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 文件属性

Java IO教程 – Java文件属性 Files类可以访问常用的文件属性。 Files.isHidden(Path p)方法测试文件是否被隐藏。 Files类中的以下方法可以访问文件的各种类型的常用属性。 long size(Path) boolean isHidden(Path path) boolean isRegularFile(Path path, LinkOption... options) boolean isDirectory(Path path, LinkOption... options) boolean isSymbolicLink(Path path) FileTime getLastModifiedTime(Path path, LinkOption... options) 文件属性 java.nio.attribute包包含属性相关的类。它在以下六种类型的视图中捆绑文件属性。 BasicFileAttributeView管理基本文件属性,如创建时间,上次访问时间,上次修改时间,大小,文件类型(常规文件,目录,符号链接或其他)和文件键(文件的唯一编号)。所有平台都支持此视图。 DosFileAttributeView扩展BasicFileAttributeView访问特定于DOS的文件属性。它提供了支持以检查文件是否是隐藏文件,系统文件,归档文件和只读文件。它仅在支持DOS的系统(如Microsoft Windows)上可用。 POSIX代表UNIX的便携式操作系统接口。PosixFileAttributeView扩展了BasicFileAttributeView并添加了对支持POSIX标准(如UNIX)的系统上可用的属性的支持。 它允许我们管理所有者,组和[相关访问]权限。 FileOwnerAttributeView管理文件的所有者。 ACL代表访问控制列表。AclFileAttributeView管理文件的ACL。 UserDefinedFileAttributeView管理一组文件的用户定义属性。属性的名称是一个字符串。属性的值可以是任何数据类型。 文件属性视图支持 支持FileStore类中的File Attribute View()方法文件存储器是否支持特定文件属性视图。 如果支持指定的文件属性视图,则返回true; 否则,返回false。 以下代码显示如何检查文件属性支持。 import java.nio.file.FileStore; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.PosixFileAttributeView; public class Main { public static void main(String[] args) throws Exception { Path path = Paths.get(""); FileStore fs = Files.getFileStore(path); // Check if POSIX file attribute is supported by the file store boolean supported = fs .supportsFileAttributeView(PosixFileAttributeView.class); if (supported) { System.out.println("POSIX file attribute view is supported."); } else { System.out.println("POSIX file attribute view is not supported."); } } } 上面的代码生成以下结果。 例子 以下代码显示如何检查文件存储的支持的文件属性视图。...

Java 文件内容-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 文件内容

Java IO教程 – Java文件内容 文件的内容类型 Files.probeContentType(Path path)方法探测文件的内容类型。 该方法以多用途Internet邮件扩展(MIME)内容类型的值的字符串形式返回内容类型。 如果一个文件的内容类型不能确定,则返回null。 以下代码显示如何探测文件的内容类型。 import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.io.IOException; public class Main { public static void main(String[] args) { Path p = Paths.get("C:\\Java_Dev\\test1.txt"); try { String contentType = Files.probeContentType(p); System.out.format("Content type of %s is %s%n", p, contentType); } catch (IOException e) { e.printStackTrace(); } } } 上面的代码生成以下结果。 读取文件的内容 Files类包含以下方法来读取文件的内容作为字节和文本行: static byte[] readAllBytes(Path path) – 读取文件中的所有字节。 static List readAllLines(Path path) – 读取文本文本行的整个内容。 static List readAllLines(Path path, Charset cs) Files类可以从Path对象获取InputStream和BufferedReader对象。 newInputStream(Path path,OpenOption … options)方法返回指定路径的InputStream对象。它假定文件的内容是UTF-8字符集。 newBufferedReader(Path path)和newBufferedReader(Path path,Charset cs)方法返回一个BufferedReader。我们可以指定字符集。 Files类提供了使用其newByteChannel(Path path,OpenOption … options)方法从Path对象中获取SeekableByteChannel对象的方法。 OpenOption类型配置正在打开的文件。下表列出了OpenOption类型的值及其描述。OpenOption是java.nio.file包中的一个接口。 java.nio.file包中的StandardOpenOption枚举实现了OpenOption接口。 标准打开选项 描述 APPEND 将写入的数据附加到现有文件,如果文件被打开写入。 CREATE 创建一个新文件,如果它不存在。 CREATE_NEW 创建一个新文件,如果它不存在。如果文件已存在,则操作失败。 DELETE_ON_CLOSE 关闭流时删除文件。 在与临时文件一起使用时非常有用。 DSYNC 保持文件的内容与底层存储同步。 READ 打开具有读访问权限的文件。 SPARSE 如果它与CREATE_NEW选项一起使用,它对文件系统提示新文件应该是稀疏文件。 SYNC 保持文件的内容和元数据与底层存储同步。 TRUNCATE_EXISTING 如果打开文件以进行写访问,则将现有文件的长度截断为零。 WRITE 打开文件以进行写访问。 以下代码在默认目录中为test2.txt文件获取一个SeekableByteChannel对象。 它打开文件以进行读取和写入访问。它使用CREATE选项,因此如果文件不存在,则创建该文件。 import static java.nio.file.StandardOpenOption.CREATE; import...