我尝试使用以下代码创建文件:
import java.io.File;
public class DeleteEvidence {
public static void main(String[] args) {
File evidence = new File("cookedBooks.txt");
Run Code Online (Sandbox Code Playgroud)
但是,该文件cookedBooks.txt在我的计算机上的任何位置都不存在.我对此很新,所以我在理解其他类似问题的线程时遇到了问题.
您已成功创建了该类的实例File,这与在硬盘驱动器中创建实际文件非常不同.
File该类的实例用于引用磁盘上的文件.您可以将它们用于许多事情,例如:
例如,要在硬盘中创建文件并向其写入一些数据,可以使用FileOutputStream.
public class AnExample {
public static void main(String... args) throws Throwable {
final File file = new File("file.dat");
try (FileOutputStream fos = new FileOutputStream(file);
DataOutputStream out = new DataOutputStream(fos)) {
out.writeInt(42);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里,fos在一个实例中FileOutputStream,它将OutputStream写入它的所有字节写入磁盘上的底层文件.
然后,我创建一个DataOutputStream围绕它的实例FileOutputStream:这样,我们可以编写比字节和字节数组更复杂的数据类型(这是您FileOutputStream直接使用的唯一可能性).
最后,将四个字节的数据写入文件:表示整数的四个字节42.请注意,如果您在文本编辑器上打开此文件,您将看到垃圾,因为上面的代码没有写入字符'4'和'2'.
另一种可能性是使用一个OutputStreamWriter,它会给你一个实例Writer,可以用来写文本(非二进制)文件:
public class AnExample {
public static void main(String... args) throws Throwable {
final File file = new File("file.txt");
try (FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter out = new OutputStreamWriter(fos, StandardCharsets.UTF_8)) {
out.write("You can read this with a text editor.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,您可以file.txt在文本编辑器上打开文件并阅读写入它的消息.