【问题标题】:How to create a file using java in a webapp?如何在 webapp 中使用 java 创建文件?
【发布时间】:2014-06-25 06:06:15
【问题描述】:

我正在尝试制作一个在特定文件夹中创建文件的 webapps。这个应用程序应该可以在 windows 和 ubuntu 上运行,但是它们有不同的文件结构。那么如何在创建文件时提及路径,在 Ubuntu 中我也需要使用权限。如何授予我尝试在其中创建文件的文件夹的权限。我为此使用 java,这是我的代码:

 //bfr=new BufferedReader(new InputStreamReader(System.in));
 String fileName="/home/hemant/"+credentials[3];
 String content=String.valueOf(n)+"\n"+messages.length;
 File file=new File(fileName);       
 if(!file.exists()){
      System.out.println("filecreated");
      file.createNewFile();
 }   

我的应用是一个基于 tomcat 的应用。我该怎么办?我是新手,不知道。

【问题讨论】:

  • 尝试使用属性文件,或者在紧要关头使用System.getProperty("os.name");
  • 假设您要在服务器端保存文件,那么这个问题基本上是 stackoverflow.com/a/2663855/3651800 的重复项(尽管该答案基本上说“不要这样做”)

标签: java tomcat web-applications


【解决方案1】:

您可以使用此代码获取操作系统的信息:

public class OSValidator {

    private static String OS = System.getProperty("os.name").toLowerCase();

    public static void main(String[] args) {

        System.out.println(OS);

        if (isWindows()) {
            System.out.println("This is Windows");
        } else if (isMac()) {
            System.out.println("This is Mac");
        } else if (isUnix()) {
            System.out.println("This is Unix or Linux");
        } else if (isSolaris()) {
            System.out.println("This is Solaris");
        } else {
            System.out.println("Your OS is not support!!");
        }
    }

    public static boolean isWindows() {

        return (OS.indexOf("win") >= 0);

    }

    public static boolean isMac() {

        return (OS.indexOf("mac") >= 0);

    }

    public static boolean isUnix() {

        return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0 );

    }

    public static boolean isSolaris() {

        return (OS.indexOf("sunos") >= 0);

    }

}

【讨论】:

  • 权限部分是什么。我想将所有权限授予我正在创建文件的文件夹,以便创建文件没有任何问题..
  • 授予文件夹权限,您可以访问此链接stackoverflow.com/questions/664432/…
【解决方案2】:

如果你使用 servlet,你可以使用这个找到路径 -

String path = servletConfig.getServletContext().getRealPath("/WEB-INF")

它将在 Ubantu 和 WINdows 上运行。

【讨论】:

    【解决方案3】:

    您可以通过以下方式检查您的 webapp 所部署的操作系统:

    System.getProperty("os.name");
    

    您可以相应地创建文件,为了授予文件权限,在 Java 7 中可以完全控制文件属性,作为“新”新 IO 工具 (NIO.2) 的一部分

    或者您可以查看此链接以获取更多信息:http://www.mkyong.com/java/how-to-set-the-file-permission-in-java/

    【讨论】:

    • 实际上我想将文件夹的权限更改为我正在创建文件的777,以便可以毫无问题地创建它..
    • 参考这篇文章:journaldev.com/855/…你也可以用java编写你的本地代码来改变那个文件夹的权限。
    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    相关资源
    最近更新 更多