java创建新⽂件_Java创建新⽂件
java创建新⽂件
Creating a file is a very common IO operation. Today we will look into different ways to create a file in java.
创建⽂件是⾮常常见的IO操作。 今天,我们将探讨在Java中创建⽂件的不同⽅法。
Java创建⽂件 (Java create file)
There are three popular methods to create file in java. Let’s look at them one by one.
有三种在Java中创建⽂件的流⾏⽅法。 让我们⼀⼀看⼀下。
1. ateNewFile() (ateNewFile())
java.io.File class can be used to create a new File in Java. When we initialize File object, we provide the file name and then we can call createNewFile() method to create new file in Java.
File createNewFile() method returns true if new file is created and false if file already exists. This metho
d also throws java.io.IOException when it’s not able to create the file. The files created is empty and of zero bytes.
When we create the File object by passing the file name, it can be with absolute path, or we can only provide the file name or we can provide the relative path.
For a non-absolute path, File object tries to locate files in the project root directory. If we run the program from command line, for the non-absolute path, File object tries to locate files from the current directory.
While creating the file path, we should use System property file.separator to make our program platform independent.
Let’s see different scenarios with a simple java program to create a new file in java.
package com.journaldev.files;
import java.io.File;
import java.io.IOException;
public class CreateNewFile {
/**
* This class shows how to create a File in Java
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String fileSeparator = Property("file.separator");
//absolute file name with path
String absoluteFilePath = fileSeparator+"Users"+fileSeparator+"pankaj"+fileSeparator+"";
File file = new File(absoluteFilePath);
ateNewFile()){
System.out.println(absoluteFilePath+" File Created");
}else System.out.println("File "+absoluteFilePath+" already exists");
//file name only
file = new File("");
ateNewFile()){
System.out.println(" File Created in Project root directory");
}else System.out.println(" already exists in the project root directory");
//relative path
String relativePath = "tmp"+fileSeparator+"";
file = new File(relativePath);
ateNewFile()){
System.out.println(relativePath+" File Created in Project root directory");
}else System.out.println("File "+relativePath+" already exists in the project root directory");
}
}
When we execute the above program from Eclipse IDE for the first time, the below output is produced.
For the relative path, it throws IOException because tmp directory is not present in the project root folder.
So it’s clear that createNewFile() just tries to create the file and any directory either absolute or relative should be present already, else it throws IOException.
So I created “tmp” directory in the project root and executed the program again, here is the output.
File /Users/ already exists
already exists in the project root directory
File Created in Project root directory
First two files were already present, so createNewFile() returns false, third file was created in tmp directory and returns true.
Any subsequent execution results in the following output:
If you run the same program from terminal classes directory, here is the output.
//first execution from classes output directory
pankaj:~/CODE/JavaFiles/bin$ java com/journaldev/files/CreateNewFile
File /Users/ already exists
< File Created in Project root directory
Exception in thread "main" java.io.IOException: No such file or directory
at java.ateFileExclusively(Native Method)
at java.ateNewFile(File.java:947)
at com.journaldev.files.CreateNewFile.main(CreateNewFile.java:32)
//tmp directory doesn't exist, let's create it
pankaj:~/CODE/JavaFiles/bin$ mkdir tmp
//second time execution
pankaj:~/CODE/JavaFiles/bin$ java com/journaldev/files/CreateNewFile
File /Users/ already exists
already exists in the project root directory
File Created in Project root directory
//third and subsequent execution
pankaj:~/CODE/JavaFiles/bin$ java com/journaldev/files/CreateNewFile
File /Users/ already exists
already exists in project root directory
File already exists in project root directory
java.io.File类可⽤于在Java中创建新的File。 初始化File对象时,我们提供⽂件名,然后可以调⽤createNewFile()⽅法来⽤Java创建新⽂件。
如果创建了新⽂件,则⽂件createNewFile()⽅法返回true ,如果⽂件已经存在,则返回false 。 当⽆法创建⽂件时,此⽅法还会引发java.io.IOException 。 创建的⽂件为空,且为零字节。
当我们通过传递⽂件名来创建File对象时,它可以使⽤绝对路径 ,也可以仅提供⽂件名,也可以提供相对路径。
对于⾮绝对路径,File对象尝试在项⽬根⽬录中到⽂件。 如果我们从命令⾏运⾏程序,对于⾮绝对路径,File对象将尝试从当前⽬录中查⽂件。
创建⽂件路径时,我们应使⽤系统属性file.separator使程序平台独⽴。
让我们看看⽤⼀个简单的Java程序在Java中创建⼀个新⽂件的不同场景。
当我们第⼀次从Eclipse IDE执⾏上述程序时,将产⽣以下输出。
/Users/ File Created
File Created in Project root directory
Exception in thread "main"
java.io.IOException: No such file or directory
at java.ateFileExclusively(Native Method)
at java.ateNewFile(File.java:947)
at com.journaldev.files.CreateNewFile.main(CreateNewFile.java:32)
对于相对路径,它会引发IOException,因为项⽬根⽂件夹中没有tmp⽬录。
因此很明显, createNewFile()只是尝试创建⽂件,并且绝对⽬录或相对⽬录都应该已经存在,否则会抛出IOException 。
因此,我在项⽬根⽬录中创建了“ tmp”⽬录,并再次执⾏了程序,这是输出。
前两个⽂件已经存在,因此createNewFile()返回false ,第三个⽂件在tmp⽬录中创建并返回true 。
任何后续执⾏将导致以下输出:
File /Users/ already exists
already exists in the project root directory
File already exists in the project root directory
如果从终端类⽬录运⾏相同的程序,则输出为。
2. FileOutputStream.write(byte [] b) (FileOutputStream.write(byte[] b))
If you want to create a new file and at the same time write some data into it, you can use write method. Below is a simple code snippet to show it’s usage. The rules for absolute path and relative path discussed above is applicable in this case too.
String fileData = "Pankaj Kumar";
FileOutputStream fos = new FileOutputStream("");
fos.Bytes());
fos.flush();
fos.close();
如果要创建⼀个新⽂件并同时向其中写⼊⼀些数据,则可以使⽤写⼊⽅法。 以下是显⽰其⽤法的简单代码段。 上⾯讨论的绝对路径和相对路径的规则也适⽤于这种情况。
3. Java NIO Files.write() (Java NIO Files.write())
We can use class to create a new file and write some data into it. This is a good option because we don’t have to worry about closing IO resources.
String fileData = "Pankaj Kumar";
Files.(""), Bytes());
我们可以使⽤类创建⼀个新⽂件并将⼀些数据写⼊其中。 这是⼀个不错的选择,因为我们不必担⼼关
闭IO资源。
That’s all for creating a new file in the java program.
这就是在java程序中创建新⽂件的全部。
. 检出更多核⼼Java⽰例。
java创建新⽂件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。