精华内容
下载资源
问答
  • Java 创建文件软链接
    千次阅读
    2019-10-12 10:34:01

    为什么要使用软链接:对文件进行移动复制粘贴,如果对文件实体进行操作的话,因为文件大小的原因会导致操作时长会很慢,而且占据内存。那么,如果使用文件的快捷方式去做文件操作会很快捷还省空间,这个快捷方式就是软链接。

    创建软链接的代码:
    linkFilePath 软连接的地址
    realFilePath 实际文件的地址

    Files.createSymbolicLink(FileSystems.getDefault().getPath(linkFilePath),FileSystems.getDefault().getPath(realFilePath));
    

    删除软链接的代码:

    File sourceFile = new File(oldPath);
    org.apache.commons.io.FileUtils.deleteQuietly(sourceFile);
    
    更多相关内容
  • 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创建文件和文件夹

    万次阅读 2018-07-18 14:28:41
    java开发过程中总是会遇到操纵file类的情况,最常见的需求就是创建文件。而java API很明显没有直接创建文件不报错的。这里提供一个方法来创建文件。 public static boolean createFileOrDir(String path) { ...

    at java.io.WinNTFileSystem.createFileExclusively
    在java开发过程中总是会遇到操纵file类的情况,最常见的需求就是创建文件和文件夹。以下是解决方案:

       /**
         * 创建文件顺便创建父目录
         *
         * @param path 文件字符串路径例如d:/fulld/why/ass/a/asd
         */
        public static void createFile(String path) {
            createFile(new File(path));
        }
    
        /**
         * 创建文件顺便创建父目录
         *
         * @param file file类
         */
        private static void createFile(File file) {
            if (file.exists() && file.isFile()) {
                file.delete();
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return;
            }
            File parentFile = file.getParentFile();
            if (parentFile.exists()) {
                if (parentFile.isFile()) {
                    parentFile.delete();
                    parentFile.mkdirs();
                }
            } else {
                parentFile.mkdirs();
            }
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 创建文件夹顺便创建父目录
         *
         * @param path 文件夹的路径字符串例如d:/fulld/why/ass/a/asd/
         * @return 如果本来就存在或者创建成功,那么就返回true
         */
        public static void mkdirs(String path) {
            mkdirs(new File(path));
        }
    
        /**
         * 创建文件夹顺便创建父目录
         *
         * @param file file类
         */
        public static void mkdirs(File file) {
            if (file.exists() && file.isDirectory()) {
                return;
            }
            if (file.exists()) {
                file.delete();
                file.mkdirs();
            } else {
                file.mkdirs();
            }
        }

    以上是解决方案,下面是错误演示:
    而java API很明显没有直接创建文件不报错的。这里写一个方法来创建文件和文件夹。

        public static boolean createFileOrDir(String path) {
            return createFileOrDir(new File(path));
        }
    
        private static boolean createFileOrDir(File file) {
            System.out.println(file.getPath());
            if (file.isDirectory()) {
                return file.mkdirs();
            }
            File parentFile = file.getParentFile();
            if (!parentFile.exists()) {
                System.out.println(parentFile.getPath());
                boolean mkdirs = parentFile.mkdirs();
                if (!mkdirs)
                    return false;
            } else {
                if (!parentFile.isDirectory()) {
                    boolean delete = parentFile.delete();
                    boolean mkdirs = parentFile.mkdirs();
                    if (!delete || !mkdirs) return false;
                }
            }
            try {
                return file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return false;
        }

    用法也很简单

    public class HeHe {
        public static void main(String[] args) {
            System.out.println(createFileOrDir("d:/fulld/why/ass/a/asd/"));
        }
    
    }

    然后你就会在你的D盘下面有这么一堆的东西,这里有个问题就是不管你最后加没有/最后一个文件夹没有创建都会默认为文件,如下图:
    这里写图片描述

    表情
    what the fuck!

    用file.getpath也是d:/fulld/why/ass/a/asd而不是d:/fulld/why/ass/a/asd/所以我觉得这个地方是个坑啊,也就是我没有办法保证最后一个创建的是文件夹,如果不存在创建的永远都是文件。mmp真的坑。

    然后咱们看看File的mkdirs方法

    * @return  <code>true</code> if and only if the directory was created,
    *          along with all necessary parent directories; <code>false</code>
    *          otherwise

    这个注释翻译过来,只有这个子目录单独创建成功的时候才会返回true,又是一个坑。所以返回值都没有什么太大的意义了。
    以上是错误示范,经过整理之后就形成了最上面的四个方法。

    展开全文
  • 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创建文件是非常容易的。以前我们创建文件等等行为完全通过提示来进行的,学习了java后,我们便可利用java通过命令来创建文件。 1、打开您的IDE工具,并创建一个文件。 2、接下来,您需要对您之前创建的...
  • 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创建文件并写入内容

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

    千次阅读 2019-05-30 22:53:26
    package com.java.ch151; import java.io.File; import java.io.IOException; //引入类 public class TextCreateFileAndDir { // 创建... public static boolean createFile(String filePath) { // 创建单个文件 ...
  • 最近在Linux系统中通过tomcat部署项目后,由于程序有上传文件功能。而上传后的却无法查看文件(通过createNewFile创建)。后来发现文件的权限为-...我们知道在Linux系统规定,创建文件的最高权限为666,而创建文件夹...
  • Java创建文件

    千次阅读 2021-03-06 17:13:39
    创建文件是一种非常常见的IO操作,在这一小节中我们将学习如何在java创建文件的几个方法。在java创建文件有三种流行的方法,下面将一个一个地来学习。方法一:使用File.createNewFile()方法java.io.File类可用于...
  • Java创建文件并写入字符串

    万次阅读 2015-12-31 10:27:19
    Java创建文件并写入字符串,如果文件存在则只写入字符串。 String sourceString = "sourceString"; //待写入字符串 byte[] sourceByte = sourceString.getBytes(); if(null != sourceByte){ try { File ...
  • 一、创建目录 mkdir()——仅创建一层目录,返回true或false. mkdirs()——创建一层或多层目录,返回true或false.   也就是,在通常情况下,使用mkdirs()即可满足创建目录的需求。 如, File file = new File("D:\\my...
  • 如何创建java文件

    千次阅读 2021-02-12 10:22:48
    如何创建java文件?(1)开启Eclipse程序后,首先开始Eclipse中JAVA项目的新建,在上方的选项栏中选择“File——New——Java Project”,系统会弹出新建项目的属性设置。(2)在Java Project的设置页面,主要设置project...
  • java创建文件和目录

    万次阅读 多人点赞 2013-09-04 12:56:03
    创建文件和目录的关键技术点如下: 1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败 2、File类的mkdir方法根据抽象路径创建目录 3、File类的mkdirs方法根据抽象...
  • 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创建文件和目录

    千次阅读 2019-09-05 13:31:20
    public boolean createDir(String destDirName) { File dir = new File(destDirName);... System.out.println("创建目录" + destDirName + "失败,目标目录已经存在"); File[] files = dir.list...
  • Java创建文件和文件夹源码实例

    千次阅读 2020-06-12 09:11:09
    以下实例演示了使用 File 类的 File() 构造函数和 file.createNewFile() 方法来创建一个新的文件,需要的朋友可以参考一下: import java.io.File; import java.io.IOException; public class Main { public ...
  • java创建、写入文件的5种方式

    千次阅读 2021-03-22 16:12:39
    java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java创建文件的五种方法。Files.newBufferedWriter(Java 8)Files.write(Java 7 推荐)PrintWriterFile....
  • java 文件和文件夹的创建

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

    千次阅读 2019-02-21 20:58:38
    package day05; import java.io.File; import java.io.IOException;... * 创建一个空文件 * @author Administrator * */ public class FileDemo2 { public static void main(String[] args) throws E...
  • JAVA自动创建文件目录

    千次阅读 2019-11-27 13:55:22
    JAVA自动创建文件目录 java提供两种创建文件夹的方式
  • Java文件创建

    千次阅读 2019-10-14 09:25:15
    File file=new File(“text.txt”) ...所以 new File("xxx.xxx") 只是在内存中创建File文件映射对象,而并不会在硬盘中创建文件 如果需要创建文件需要以下操作: 判断映射的文件是否真实存在 file.exists() //...
  • Java创建文件并写入指定的数据 Java的其他文件操作,也会在该专栏更新 1.写入字节数组 /** * 新建新的文件并写入指定字节数组的数据 * @param fileName 文件目录及名称字符串 * @param bytes 字节数组 * @...
  • 总结java创建并写文件的5种方式

    千次阅读 2020-08-28 07:41:55
    java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java创建文件的五种方法。 Files.newBufferedWriter(Java 8) Files.write(Java 7 推荐) PrintWriter File....
  • 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...
  • 2、File.createFile() 方法创建文件,若文件已经存在则返回false,创建成功返回true 3、使用FileInputStream读取文件文件内容,使用BufferedInputStream加速读取 4、无论上述步骤成功与否都要最后关闭相关的...
  • Java中File使用--创建文件

    万次阅读 多人点赞 2019-06-20 14:33:45
    1.错误示范1,输出的是创建文件夹 D:\filepath\test\test.txt。 public class FileTest { public static void main(String[] args) throws IOException { String fileName = "test.txt"; File testFile = new.....
  • 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、创建TXT文件按照正常的逻辑写就好先定义一个文件给定一个路径——>判断这个路径上这个文件存不存在——>若不存在则建立,try/catch根据程序提示自动生成就好2、读取TXT文件思路1:获得一个文件路径以这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,173,340
精华内容 869,336
关键字:

java创建文件

java 订阅
友情链接: BLKTRIDIAG.zip