精华内容
下载资源
问答
  • Java创建文件
    千次阅读
    2021-03-06 17:13:39

    创建文件是一种非常常见的IO操作,在这一小节中我们将学习如何在java中创建文件的几个方法。

    在java中创建文件有三种流行的方法,下面将一个一个地来学习。

    方法一:使用File.createNewFile()方法

    java.io.File类可用于在Java中创建新文件。当初始化File对象时,需要提供一个文件名,然后调用createNewFile()方法来在Java中创建新文件。

    如果创建新文件成功,则文件createNewFile()方法返回true,如果文件已存在则返回false。当它无法创建文件时,此方法也会抛出java.io.IOException异常。创建的文件为空且零字节。

    当通过传递文件名来创建File对象时,它可以是绝对路径,或者只能提供文件名,或者可以提供相对路径。

    对于非绝对路径,File对象尝试查找项目根目录中的文件。如果从命令行运行程序,对于非绝对路径,File对象会尝试从当前目录中查找文件。

    在创建文件路径时,应该使用System属性file.separator来使程序平台独立。

    下面让我们来看看使用java程序创建一个新文件的不同场景。

    import java.io.File;

    import java.io.IOException;

    public class CreateNewFile {

    /**

    * 该类显示了如何在Java中创建文件

    *

    * @param args

    * @throws IOException

    */

    public static void main(String[] args) throws IOException {

    String fileSeparator = System.getProperty("file.separator");

    // 带路径的绝对文件名

    String absoluteFilePath = "temp" + fileSeparator + "temp2" + fileSeparator + "file.txt";

    System.out.println(System.getProperty("user.dir"));

    File file = new File(absoluteFilePath);

    if (file.createNewFile()) {// 工程目录下要有一个目录:temp/temp2

    System.out.println(absoluteFilePath + " File Created");

    } else

    System.out.println("File " + absoluteFilePath + " already exists");

    // 只提供文件名称

    file = new File("file.txt");

    if (file.createNewFile()) {

    System.out.println("file.txt File Created in Project root directory");

    } else

    System.out.println("File file.txt already exists in the project root directory");

    // 相对路径

    String relativePath = "tmp" + fileSeparator + "file.txt";

    file = new File(relativePath);

    if (file.createNewFile()) {

    System.out.println(relativePath + " File Created in Project root directory");

    } else

    System.out.println("File " + relativePath + " already exists in the project root directory");

    }

    }

    当第一次在Eclipse IDE执行上述程序时,会生成以下输出。

    D:\worksp\eclipsej2ee\TestJava

    temp\temp2\file.txt File Created

    file.txt File Created in Project root directory

    Exception in thread "main" java.io.IOException: 系统找不到指定的路径。

    at java.io.WinNTFileSystem.createFileExclusively(Native Method)

    at java.io.File.createNewFile(Unknown Source)

    at CreateNewFile.main(CreateNewFile.java:37)

    对于相对路径,它会抛出IOException异常,因为项目根文件夹中不存在tmp目录。所以很明显createNewFile()只是尝试创建文件,任何绝对或相对的目录都应该存在,否则抛出IOException异常。所以需要在项目根目录中创建tmp目录并再次执行程序,输出如下所示 -

    D:\worksp\eclipsej2ee\TestJava

    File temp\temp2\file.txt already exists

    File file.txt already exists in the project root directory

    tmp\file.txt File Created in Project root directory

    方法二: 使用FileOutputStream.write(byte[] b)方法

    如果要创建新文件并同时并写入一些数据,可以使用FileOutputStream方法。下面是一个简单的代码片段,用于演示它的用法。上面讨论的绝对路径和相对路径的规则也适用于这种情况。

    String fileData = "Maxsu from Yiibai.com";

    FileOutputStream fos = new FileOutputStream("readme.txt");

    fos.write(fileData.getBytes());

    fos.flush();

    fos.close();

    方法三: 使用Java NIO Files.write()方法

    可以使用Java NIO Files类来创建一个新文件并将一些数据写入其中。这是一个很好的选择,因为它不必担心关闭IO资源。

    String fileData = "Maxsu from Yiibai.com";

    Files.write(Paths.get("readme.txt"), fileData.getBytes());

    上面就是在java程序中常用用于创建新文件的全部内容。

    ¥ 我要打赏

    纠错/补充

    收藏

    加QQ群啦,易百教程官方技术学习群

    注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

    更多相关内容
  • java创建文件_Java创建文件

    千次阅读 2020-07-19 20:44:52
    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 create file) There a...

    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)

    java create file, java create new file

    There are three popular methods to create file in java. Let’s look at them one by one.


    有三种在Java中创建文件的流行方法。 让我们一一看一下。

    1. File.createNewFile() (File.createNewFile())

      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 method 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 = System.getProperty("file.separator");
              
              //absolute file name with path
              String absoluteFilePath = fileSeparator+"Users"+fileSeparator+"pankaj"+fileSeparator+"file.txt";
              File file = new File(absoluteFilePath);
              if(file.createNewFile()){
                  System.out.println(absoluteFilePath+" File Created");
              }else System.out.println("File "+absoluteFilePath+" already exists");
              
              //file name only
              file = new File("file.txt");
              if(file.createNewFile()){
                  System.out.println("file.txt File Created in Project root directory");
              }else System.out.println("File file.txt already exists in the project root directory");
              
              //relative path
              String relativePath = "tmp"+fileSeparator+"file.txt";
              file = new File(relativePath);
              if(file.createNewFile()){
                  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/pankaj/file.txt already exists
      File file.txt already exists in the project root directory
      tmp/file.txt 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/pankaj/file.txt already exists
      file.txt File Created in Project root directory
      Exception in thread "main" java.io.IOException: No such file or directory
      	at java.io.UnixFileSystem.createFileExclusively(Native Method)
      	at java.io.File.createNewFile(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/pankaj/file.txt already exists
      File file.txt already exists in the project root directory
      tmp/file.txt File Created in Project root directory
      
      //third and subsequent execution
      pankaj:~/CODE/JavaFiles/bin$ java com/journaldev/files/CreateNewFile
      File /Users/pankaj/file.txt already exists
      File file.txt already exists in project root directory
      File tmp/file.txt 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/pankaj/file.txt File Created
      file.txt File Created in Project root directory
      Exception in thread "main" 
      java.io.IOException: No such file or directory
      	at java.io.UnixFileSystem.createFileExclusively(Native Method)
      	at java.io.File.createNewFile(File.java:947)
      	at com.journaldev.files.CreateNewFile.main(CreateNewFile.java:32)

      对于相对路径,它会引发IOException,因为项目根文件夹中没有tmp目录。

      因此很明显, createNewFile()只是尝试创建文件,并且绝对目录或相对目录都应该已经存在,否则会抛出IOException

      因此,我在项目根目录中创建了“ tmp”目录,并再次执行了程序,这是输出。

      前两个文件已经存在,因此createNewFile()返回false ,第三个文件在tmp目录中创建并返回true

      任何后续执行将导致以下输出:

      File /Users/pankaj/file.txt already exists
      File file.txt already exists in the project root directory
      File tmp/file.txt 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 FileOutputStream 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("name.txt");
      fos.write(fileData.getBytes());
      fos.flush();
      fos.close();

      如果要创建一个新文件并同时向其中写入一些数据,则可以使用FileOutputStream写入方法。 以下是显示其用法的简单代码段。 上面讨论的绝对路径和相对路径的规则也适用于这种情况。

    3. Java NIO Files.write() (Java NIO Files.write())

      We can use Java NIO Files 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.write(Paths.get("name.txt"), fileData.getBytes());

      我们可以使用Java NIO Files类创建一个新文件并将一些数据写入其中。 这是一个不错的选择,因为我们不必担心关闭IO资源。

    That’s all for creating a new file in the java program.

    这就是在java程序中创建新文件的全部。

    GitHub Repository. GitHub Repository中检出更多核心Java示例。

    翻译自: https://www.journaldev.com/825/java-create-new-file

    java创建新文件

    展开全文
  • JAVA创建文件后权限不足的问题,无法设置权限的问题凯哥java 凯哥java前言:在工作中,项目使用到文件上传,这个功能是很常见的吧。今天,凯哥修改自己的公众号的时候,遇到了一个问题:那就是上传后的文件访问不到...

    JAVA创建文件后权限不足的问题,无法设置权限的问题

    凯哥java 凯哥java

    前言:

    在工作中,项目使用到文件上传,这个功能是很常见的吧。今天,凯哥修改自己的公众号的时候,遇到了一个问题:那就是上传后的文件访问不到,使用浏览器访问不到了。怎么办呢?经过多次查询,发现竟然是因为tomcat的配置原因!

    正文:

    最近在Linux系统中通过tomcat部署项目后,由于程序有上传文件功能。而上传后的却无法查看文件(通过createNewFile创建)。后来发现文件的权限为-rw-r-----,而文件的拥有者是root,这样就只有拥有者有root用户组的拥有读取权限。

    通过研究发现,Linux通过umask变量来控制创建文件的默认权限问题。我们知道在Linux系统规定,创建文件的最高权限为666,而创建文件夹的最高权限为777,系统通过变量umask来控制创建文件的权限问题。如果当umask的值为022时,则创建的文件权限为644,即权限是通过最高权限减去umask的值来控制的。

    先来看看,凯哥上传后文档的权限:

    9d38a1f3d2036c3a4843dd7cf52fa246.png

    我们可以看到,当文件上传后,文件多所属者是root.但是访问不了,凯哥手动设置权限为777的时候,浏览器就可以访问到了。但是通过程序上传的时候,文件上传后所属者也是root,但是权限变成了640.而这个640权限,通过ftp是访问不到的。凯哥图片域名指向了图片服务器的根目录。这样来看,应该是权限不够导致的。于是开始各种尝试。分析后,想,会不会是tomcat自己搞的鬼呢?于是,搜索后,看到一篇文章:

    通过研究发现,Linux通过umask变量来控制创建文件的默认权限问题。我们知道在Linux系统规定,创建文件的最高权限为666,而创建文件夹的最高权限为777,系统通过变量umask来控制创建文件的权限问题。如果当umask的值为022时,则创建的文件权限为644,即权限是通过最高权限减去umask的值来控制的。

    但Linux系统umask的默认值是0022,也就是说创建的文件应该是644的权限,而上传的文件却是640的权限。后来通过对查询Tomcat发现从tomcat8开始,catalina.sh文件中有下面几行代码

    于是根据文章提示,找到自己tomcat的catalina.sh文件,大概在286行左右,如下图:

    8c57d74e022cd183423fbc6351d40cab.png

    一看,确实发现,tomcat的配置:

    # Set UMASK unless it has been overridden

    if [ -z "$UMASK" ]; then

    #如果是0027的话,文件上传后,权限640,图片域名访问不到。需要修改

    #UMASK="0027"

    fi

    umask $UMASK

    于是,根据文章,果断修改成“0000”:

    4ba1bfca555bb179ced08841df4f5cee.png

    保存文件,重启tomcat,重新上传文件后,进行访问,图片正常访问成功!

    来看看,修改后,上传文件的权限:

    e0eeaf3c542537066f1c3c688e0bea6b.png

    权限变化后,就可以正常访问了。明天,就可以在凯哥,自己的公众号后台,编辑文章了。不用在到公众号官方后台编辑了。开心!~

    来看看上传后的文件:

    41c19523fe19c86cfb26e81c0bfe78b7.png

    展开全文
  • Java创建文件和文件夹

    万次阅读 多人点赞 2017-11-20 15:36:14
    java代码: import java.io.*;//导入所需的包 public class IOTest {//类 public static void main(String[] args){//主程序,程序入口 File file=new File("D:\\Qiju_Li"); if(!file.exists()){//如果文件夹不...

    例子如下:

    java代码:

    import java.io.*;//导入所需的包
    public class IOTest {//类
    	public static void main(String[] args){//主程序,程序入口
    		File file=new File("D:\\Qiju_Li");
    		if(!file.exists()){//如果文件夹不存在
    			file.mkdir();//创建文件夹
    		}
    		try{//异常处理
    			//如果Qiju_Li文件夹下没有Qiju_Li.txt就会创建该文件
    			BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\Qiju_Li\\Qiju_Li.txt"));
    			bw.write("Hello I/O!");//在创建好的文件中写入"Hello I/O"
    			bw.close();//一定要关闭文件
    		}catch(IOException e){
    			e.printStackTrace();
    		}
    	}
    }
    
    运行后。结果如下:

    创建成功。


    展开全文
  • java创建txt文件

    千次阅读 2020-12-13 19:29:21
    import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.util.Arrays; import java.util.List; public class Test { public static void ...
  • java向EXCEL中写入数据。里面有一个ExcelWrite.java文件和一个jxl的jar包。
  • java创建并调用bat文件

    热门讨论 2013-05-24 17:58:37
    java创建并调用bat文件
  • java创建txt文件并存入内容

    千次阅读 2021-03-05 23:34:04
    本文实例为大家分享了java创建txt文件并存入内容的具体代码,供大家参考,具体内容如下import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import...
  • Java 创建临时文件

    千次阅读 2020-03-29 14:59:31
    使用File类的...方法在默认临时目录创建临时文件,参数prefix为前缀,suffix为后缀。 完整代码 import java.io.*; public class Main { public static void main(String[] args) throws Exception { ...
  • java创建临时文件

    千次阅读 2019-01-07 10:43:11
    //perfix为临时文件的前缀,suffix为临时文件的后缀,这种方法没有指定目录,则放在系统的临时文件夹下 createTempFile( String perfix,String suffix,File directory );//perfix为临时文件的前缀,suffix为临时...
  • java 文件和文件夹的创建

    千次阅读 2021-02-12 10:14:30
    //创建文件boolean mkdir();创建文件夹boolean mkdirs();创建多级文件夹。2.删除。boolean delete();void deleteOnExit();在程序退出时删除文件。3.判断。boolean canExcute(); 判断是否可执行boolean exists(); 文...
  • Java创建文件并写入内容

    万次阅读 2018-08-14 23:49:15
    以下代码可以创建一个文件,并使用FileWriter向文件中写入内容,若路径不存在则自动创建路径,若文件已经存在,则不再创建 public void createFile() throws IOException { String filePath = "D:/a/b&...
  • Java 创建文件软链接

    千次阅读 2019-10-12 10:34:01
    为什么要使用软链接:对文件进行移动复制粘贴,如果对文件实体进行操作的话,因为文件大小的原因会...创建软链接的代码: Files.createSymbolicLink(FileSystems.getDefault().getPath(file.getAbsolutePath()), ...
  • 如何使用eclipse创建一个java文件

    千次阅读 2021-02-27 11:48:05
    1:如何使用eclipse创建一个java文件第一步:创建一个java项目file——>new-->java project第二步:创建一个package选中项目右键,选择:new-->package注意:规范。所有单词全部小写,顶级域名倒着写。规则...
  • Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
  • #java代码遍历文件目录下的文件,获取文件创建时间和修改时间 ##例如文件目录为:D:/test 文件夹下包含有这5个文件: ##具体java代码如下(jsa.java): import java.nio.file.Files; import java.nio.file....
  • java创建一个新文件The task is to create a new empty file in Java. 任务是用Java创建一个新的空文件。 Creating a new empty file 创建一个新的空文件 To create a new empty file in java – we use ...
  • 在本地磁盘创建文件目录
  • 最近在Linux系统中通过tomcat部署项目后,由于程序有上传文件功能。而上传后的却无法查看文件(通过createNewFile创建)。后来发现文件的权限为-...我们知道在Linux系统规定,创建文件的最高权限为666,而创建文件夹...
  • 直接上代码! File file = new File("D:\\22222.txt"); SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd"); FileTime t = null; try { t = Files.readAttributes(Paths.get("D:\\...
  • Java文件创建

    千次阅读 2019-10-14 09:25:15
    File file=new File(“text.txt”) ...所以 new File("xxx.xxx") 只是在内存中创建File文件映射对象,而并不会在硬盘中创建文件 如果需要创建文件需要以下操作: 判断映射的文件是否真实存在 file.exists() //...
  • java在linux上创建文件,写入内容

    千次阅读 2020-07-26 10:42:45
    java在linux上创建文件,写入内容 1:首先创建全路径, public void mkTemporaryDirs(){ String filePath = "temporaryDir/file/temp.txt"; File file = new File(filePath); if (!file .getParentFile().exists...
  • java创建zip压缩文件

    千次阅读 2019-10-28 19:43:55
    这里给的demo是压缩整个文件夹,如果需要压缩单个文件需要你自己更改一下. import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * @ClassName File2Zip * @Auther ...
  • 创建文件名称,点击finish 然后打开文件的目录,选中src子目录,右键单击,选择NEW>>Java Class 输入文件名,建议大写字母开头 这样,一个新的java文件就创建成功了 可以开启我们的代码之旅了。 ...
  • 一、创建 Groovy 代码文件、 二、使用 Java 语法实现 Groovy 类和主函数并运行、 三、按照 Groovy 语法改造上述 Java 语法规则代码
  • Java将字符串写入文本文件代码示例

    千次阅读 2021-03-09 01:20:04
    一、Filewriter与File——-将字符串写入文本文件public static void main(String[] ...//新建一个文件对象,如果不存在则创建一个该文件FileWriter fw;try {fw=new FileWriter(f);String str="hello world";fw.write...
  • Java创建文件是非常容易的。以前我们创建文件等等行为完全通过提示来进行的,学习了java后,我们便可利用java通过命令来创建文件。 1、打开您的IDE工具,并创建一个文件。 2、接下来,您需要对您之前创建的...
  • Java文件上传功能代码 —— 普遍适用

    万次阅读 多人点赞 2017-05-27 15:57:11
    通过之前的博客,基本上已经将各个框架上传文件的功能逻辑理清楚,有文件下载肯定就需要有文件上传,那么接下来会跟大家一起分享各个框架上传文件的功能代码
  • JAVA创建TXT文件并写入内容

    千次阅读 2019-12-23 10:37:01
    public static void main(String[] args) { try { // 保存路径 String path = "D://logs"; String title = "一个TXT"; String content = "一段话";... // 防止文件建立或读取失败,用catch捕捉错误并...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,441,502
精华内容 576,600
关键字:

java创建文件代码

java 订阅