Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
用java在远程计算机上创建文件_Java - Fatal编程技术网

用java在远程计算机上创建文件

用java在远程计算机上创建文件,java,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();

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

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

}

}你可能做不到这一点<代码>文件(字符串路径名)不能删除
http://..
东西。似乎您需要一个
URI
,但是
文件(URI-URI)
只能接受
文件:URI
作为参数


请参阅。

所说的“远程”是指“在局域网之外”吗

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


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

@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()

File file = new File("http://10.44.25.30:success.txt");
这是行不通的。此构造函数的参数是文件名,而不是URL。而且这个URL甚至不是有效的HTTP URL:最后一个冒号应该是
/

有一个
文件(URI)
构造函数,但它被专门记录为只接受
文件:
URI


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

这将创建一个名为
http:
的文件夹-除非您使用的是Windows,其中文件名不能包含
,其中
mkdirs
将返回false。他没有使用
文件(URI).
他希望使用它,不是吗?我的意思是他不会写
http://...
作为路径名<代码>http://..似乎是一个URI。但是
文件
只能接受
文件:
。这就是我的意思。远程的意思是在局域网中是否可行URL=newURL(“file://192.168.1.157C://tmp//myfile.txt");您可以尝试“\\\\192.168.1.157\\Share Folder\\tmp\\myfile.txt”或file:////192.168.1.157/Share Folder/tmp/myfile.txt“这也是我的观点:).Hi@Kunal--基本上这意味着
C$
目录是一个隐藏的共享文件夹。在这种情况下,它是“C”驱动器。