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

时间:2014-06-25 06:06:15

标签: java tomcat web-applications

我正在尝试创建一个在特定文件夹中创建文件的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的应用。我该怎么办?我是新手,不知道。

3 个答案:

答案 0 :(得分:0)

如果您使用的是servlet,可以使用此命令找到路径 -

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

它适用于Ubantu和WIndows。

答案 1 :(得分:0)

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

System.getProperty("os.name");

您可以相应地创建文件。为了赋予文件权限,Java 7中提供了对文件属性的完全控制,作为" new"的一部分。新的IO设施(NIO.2)

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

答案 2 :(得分:0)

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

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

    }

}