在java中的远程机器上创建文件

时间:2015-04-10 03:00:16

标签: java

我正在使用以下代码,但它没有显示预期的输出。

public class FileTestOnSever {
public static void main(String[] args) {
    File file = new File("http://10.44.25.30:success.txt");
    if (!file.exists()) {
        try {
            file.getParentFile().mkdirs();
            // file.createNewFile();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

}

4 个答案:

答案 0 :(得分:2)

@TravoloPerUno是正确的,文件系统需要可用。

说,SMB(?)共享应该在Windows上开箱即用(您使用的操作系统是什么?)。这是一个适合我的例子:

// smb shared directory
new File("\\\\hostname\\c$\\workspace\\foobar1.txt").createNewFile();
// or with a mapped network drive
new File("Z:\\workspace\\foobar2.txt").createNewFile();
// or with URIs
new File(new URI("file:////hostname/c$/workspace/foobar3.txt")).createNewFile();
new File(new URI("file:///Z:/workspace/foobar4.txt")).createNewFile();

如果您想要目录而不是文件,请使用mkdirs()

答案 1 :(得分:1)

File file = new File("http://10.44.25.30:success.txt");

这不起作用。此构造函数的参数是文件名,而不是URL。此URL甚至不是有效的HTTP URL:最终冒号应为/

有一个File(URI)构造函数,但具体记录为只接受file: URI。

基本上File不会说HTTP。您必须使用在客户端具有含义的文件名,例如(对于Windows)\\\\10.44.25.30\\success.txt

答案 2 :(得分:0)

通过“遥控”,你的意思是“你的局域网外面”吗?

如果它位于LAN之外,则远程计算机必须使用NFS和Samba等协议使其文件系统可供远程客户端使用。这是真的,您可以通过更正文件路径来使用您的方法。它取决于远程系统上使用的协议。

如果未共享远程计算机的文件系统,则可以使用套接字。您必须有权在远程计算机上安装接收器插槽。

答案 3 :(得分:-2)

你可能做不到这一点。 File(String pathname)http://..之外不能URI。您似乎想要File(URI uri),但file:URI只能将{{1}}视为参数。

请参阅http://docs.oracle.com/javase/7/docs/api/java/io/File.html