2016-08-01 66 views
0

我做了一个简单的Java Web应用程序,它运行在Tomcat上以探索天蓝色的环境。Azure网络应用程序写入和读取文件

我可以读取文件从Web应用程序(通过FTP部署到Web应用程序的根),由HOME环境变量表示的路径(蔚蓝自己的环境变量,解析为D:\home):

String home = env.getProperty("HOME"); 

FileInputStream fis; 
try { 
    fis = new FileInputStream(home + "/" + "input.txt"); 

    //... 

    fis.close(); 
} catch (IOException e) { 
    //... 
} 

但我无法将文件写入相同路径:

String home = env.getProperty("HOME"); 
File file = new File(home + "/output.txt"); 

try { 
    FileOutputStream fos = new FileOutputStream(file, true); 

    //... 

    fos.flush(); 
    fos.close(); 
} catch (IOException e) { //ACCESS DENIED 
    return "ERROR :" + e.getMessage(); 
} 

上面的代码失败,导致访问被拒绝错误。

我可以在Azure中将持久性文件写入某个路径,还是我需要一个云本地存储器?

+0

我不建议将文件保存到Azure上的本地存储;我的低估是他们可能会将您的应用程序移动到另一个实例,并且他们只会包含您在部署应用程序时上传的原始包。 –

+1

@MokhtarAshour - 除非您完全删除,否则Azure Web应用程序提供*持久*存储,以保留您的应用程序。这与虚拟机中的临时磁盘不同。 –

+0

感谢您对%HOME%/ site下写的 –

回答

3

您不能直接在%HOME%下创建文件,但可以创建目录。在那里,你可以创建文件。它只是它根本不允许的文件。

+0

的解释,谢谢。 – Reek

相关问题