关于java File类中三种创建文件的理解
创建项目文件夹,用于集中处理特定任务的文件 #生活技巧# #组织技巧# #文件管理系统#
Stack Overflow的提问:
大致的意思是:File file = new File(pathname)是在此路径下创建了一个全新的文件(已有的文件则删除)吗?或者它指向和路径名匹配已创建的文件吗?
刚学习是我也是这样认为的,但是查了一下资料,发现我的认知是错误的,以下是一个解答,或许会有用。
File file = new File(pathname)查看官方文档也可知,只是创建了一个实例就是一个对象,对官方的解释:
总得来说,file并不是我们所理解的创建了一个实实在在的文件,而是 a new instance in memory of the File class。如果在相应的路径下,这个文件存在,那么file.exists()为true。否则的话,需要file.createNewFile()创建一个空文件。
如果对上面你不是特别理解的话,下面关于java 创建文件并读写的三种方法可能会给你提供帮助。
Java create new file
Using java.io.File ClassUsing java.io.FileOutputStream ClassUsing java.nio.file.Files from NIO不啰嗦,直接上代码,不明白的地方可以查看官方API
Using java.io.File Class
File file = new File("c://temp//testFile1.txt");
if (file.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
FileWriter writer = new FileWriter(file);
writer.write("Test data");
writer.close();
Using java.io.FileOutputStream Class
String data = "Test data";
FileOutputStream out = new FileOutputStream("c://temp//testFile2.txt");
out.write(data.getBytes());
out.close();
Using java.nio.file.Files from NIO
String data = "Test data";
Files.write(Paths.get("c://temp//testFile3.txt"), data.getBytes());
List<String> lines = Arrays.asList("1st line", "2nd line");
Files.write(Paths.get("file6.txt"), lines, StandardCharsets.UTF_8,
StandardOpenOption.CREATE, StandardOpenOption.APPEND);
完整程序
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.Arrays;
import java.util.List;
public class CreateNewFile
{
public static void main(String[] args) throws IOException
{
createFileUsingFileClass();
createFileUsingFileOutputStreamClass();
createFileIn_NIO();
}
private static void createFileUsingFileClass() throws IOException
{
File file = new File("c://temp//testFile1.txt");
if (file.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
FileWriter writer = new FileWriter(file);
writer.write("Test data");
writer.close();
}
private static void createFileUsingFileOutputStreamClass() throws IOException
{
String data = "Test data";
FileOutputStream out = new FileOutputStream("c://temp//testFile2.txt");
out.write(data.getBytes());
out.close();
}
private static void createFileIn_NIO() throws IOException
{
String data = "Test data";
Files.write(Paths.get("c://temp//testFile3.txt"), data.getBytes());
List<String> lines = Arrays.asList("1st line", "2nd line");
Files.write(Paths.get("file6.txt"), lines, StandardCharsets.UTF_8,
StandardOpenOption.CREATE, StandardOpenOption.APPEND);
}
}
参考文章:
https://stackoverflow.com/questions/19702659/about-file-file-new-filepath
https://howtodoinjava.com/core-java/io/how-to-create-a-new-file-in-java/
网址:关于java File类中三种创建文件的理解 https://www.yuejiaxmz.com/news/view/441642
相关内容
基于java web个人财务管理系统HTML input type=file文件选择表单元素二三事 « 张鑫旭
基于Android的健身计划管理应用的设计与实现(源码+LW+调试文档+讲解)
Java个人财务管理小软件
基于SpringBoot+Vue的社区邻里服务平台系统(源码+LW+调试文档+讲解)
基于java+springboot+vue的二手旧物置换网站(源码+LW+部署讲解)
基于Java+Vue的毕业生生活用品出售平台的设计与实现
关于【error=2,No such file or directory】问题的一种起因与解决方法
IE type=file上传文件浏览弹窗问题
Android studio 中文乱码的解决办法