在 Java 中创建一个新文件并不是一件困难的事情。
本文旨在帮助学习创建一个新文件,然后用 Java 编写。
所以,首先让我们学习在 Java 中创建新文件。
使用 Java NIO Files.write()
使用 Java NIO Files 类创建一个新文件并向其中写入一些数据。
该 Java 类提供 write(Path path, byte[] bytes, OpenOption... options) 方法,该方法将字节写入指定路径的文件。
使用 Files 类,可以创建、移动、复制、删除文件和目录。
它还可以用于读取和写入文件。
Files.write() 是创建文件的首选方式,因为我们不必担心关闭 IO 资源。
这个类有以下参数:
- 行 - 迭代字符序列的对象。将文本行写入文件。每行都是一个字符序列,并按顺序写入文件,每行以平台的行分隔符结尾。
- options - 此参数指定文件的创建或者打开方式。如果未指定选项,则默认情况下会考虑 CREATE、TRUNCATE_EXISTING 和 WRITE 选项。这意味着它会打开文件进行写入并在文件不存在时创建或者将现有文件截断为 0(如果存在)。
- path - 指定行的路径。
- cs - 用于编码的字符集。
字节数组中的所有字节都写入文件。
此方法确保在写入所有字节后关闭文件并返回写入文件的路径。
例子
import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class FilesWriterExample { public static void main(String[] args) { Path path = Paths.get("D:/data/example.txt"); try { String str = "Some write file Example"; byte[] bs = str.getBytes(); Path writtenFilePath = Files.write(path, bs); System.out.println("Written content in file:\n"+ new String(Files.readAllBytes(writtenFilePath))); } catch (Exception e) { e.printStackTrace(); } } }
使用 java.io.File 类
当我们初始化 File 对象时,我们提供文件名,然后调用 createNewFile() 方法,如果具有该名称的文件尚不存在,该方法会自动创建一个由抽象路径名命名的新的空文件。
如果指定的文件不存在并且已成功创建,则此方法返回 true。
如果文件存在,则返回 false。
当它无法创建文件时,它也会抛出 java.io.IOException。
创建的文件为空且字节数为零。
此方法不应用于文件锁定,因为无法使生成的协议可靠地工作。
请记住,此方法只会创建一个文件,但不会向其中写入任何内容。
例子
//Java program to demonstrate createNewFile() method import java.io.File; public class FileCreator { public static void main(String args[]) { try { //Get the file File f = new File("D:\example.txt"); //Create new file //Check if it does not exist if (f.createNewFile()) System.out.println("File created"); else System.out.println("File already exists"); } catch (Exception e) { System.err.println(e); } } }
当你编译并运行程序时,它会得到以下结果:
使用 java.io.FileOutputStream 类
如果我们想创建一个新文件并同时向其中写入一些数据,我们可以使用 FileOutputStream.write 方法。
此方法会自动创建一个新文件并向其中写入一些内容。
FileOutputStream 方法用于写入原始字节流,例如图像数据。
如果要写入面向字符的数据,最好使用 FileWriter。
在这里找到一个简单的代码来看看它的用法:
例子
String fileData = "Some Test"; FileOutputStream fos = new FileOutputStream("D:\example.txt"); fos.write(fileData.getBytes()); fos.flush(); fos.close();