Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在webapp中使用java创建文件?_Java_Tomcat_Web Applications - Fatal编程技术网

如何在webapp中使用java创建文件?

如何在webapp中使用java创建文件?,java,tomcat,web-applications,Java,Tomcat,Web Applications,我正在尝试制作一个webapps,它在特定文件夹中创建一个文件。这个应用程序应该可以在windows和ubuntu上运行,但它们有不同的文件结构。那个么,我如何在创建文件时提到路径,在Ubuntu中,我还需要使用权限。如何授予尝试在其中创建文件的文件夹的权限。我使用java来实现这一点,这是我的代码: //bfr=new BufferedReader(new InputStreamReader(System.in)); String fileName="/home/hemant/"+cred

我正在尝试制作一个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的应用程序。我该怎么办?我不熟悉这一点,也不知道。

如果您使用的是servlet,您可以使用以下内容找到路径-

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

它将在Ubantu和WIndows上运行。

您可以通过以下方式检查部署Web应用的操作系统:

System.getProperty("os.name");
您可以相应地创建文件,为了给文件授予权限,Java7中提供了对文件属性的完全控制,作为新IO工具NIO.2的一部分


或者您可以查看此链接以了解更多信息:

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

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);

    }

}

尝试使用属性文件,或System.getPropertyos.name;在紧要关头。假设你想在服务器端保存文件,那么这个问题基本上是重复的,虽然答案基本上是说不要这样做。实际上,我想将文件夹的权限更改为777,在那里创建文件,这样就可以毫无问题地创建文件。参考这篇文章:你也可以用java编写您的本机代码以更改该文件夹的权限。权限部分的作用是什么。我想授予我正在创建文件的文件夹的所有权限,以便创建文件时不会出现任何问题。授予您可以访问此链接的文件夹的权限