如何使用Java程序将文件从Linux系统复制到Windows系统?
如何使用Java程序将文件从Linux系统复制到Windows系统? 感谢您的帮助。 我想从Linux的文件复制:/inet/apps/test.java到Windows系统1:C:\ APPS \测试 我们可以用下面的程序来复制如何使用Java程序将文件从Linux系统复制到Windows系统?
public static void copyFiles(String fromFile, String toFile){
FileInputStream from = null;
FileOutputStream to = null;
try {
from = new FileInputStream(fromFile);
to = new FileOutputStream(toFile);
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = from.read(buffer)) != -1)
to.write(buffer, 0, bytesRead); // write
}catch(Exception e){e.printStackTrace();}
finally {
if (from != null)
try { from.close();} catch (IOException e) {}
if (to != null)try {to.close();} catch (IOException e) {}
}
}
该程序在Linux上运行。 所以fromFile = /inet/apps/test
。什么是toFile
路径。如果我简单地使用C:\apps\test
那么应用程序如何识别目标为System1
。
Java在Windows和Linux文件之间没有区别。所以,只要你可以访问你的Java程序运行的计算机中的两个文件系统,你可以复制它们。
我在linux中运行java文件。所以unixFile Path将会是/inet/apps/test.java。如何指定Windows文件>对不起,它可能是基本的。 – vishnu 2010-10-14 23:26:13
-
我想你问的是该程序的一些 属性。
在这种情况下,属性应为 可配置。您可以将 属性文件保存在与您的Java程序相同的 目录中,或保留在 类路径中。
-
属性文件可能类似于:
windows.filepath = C:\user\somefile.txt unix.filepath = /inet/apps/test.txt
所以,当你口环境。您 不需要更改属性。
如果你问有关如何端口 test.java到Windows,然后就 将文件复制到JAVA_HOME目录上 窗口,然后你是好去。
或者如果您有双启动系统。 您可以访问您的linux drive from windows,但不能通过其他方式访问 。
谢谢。如果我使用windows.filepath = C:\ user \ somefile.txt.in这种方式应用程序如何识别目标系统。请参阅我的编辑问题 – vishnu 2010-10-15 00:36:22
如果Unix系统具有窗口文件系统交叉安装(例如,通过SMB共享),你应该能够找到对应于Windows目的地的UNIX路径名,并复制你正在做的事情。
否则,您将需要使用某种文件传输协议来复制文件。
没有什么Java魔法可以让你神奇地将文件写入不同的计算机。操作系统必须设置为允许这种情况发生。
跟进 - 你问:
我不知道魔术的想法。所以我的问题是如何将文件从Windows复制到Linux。通常我们在unix上执行FTP而无需安装,或者我们使用FileZilla工具进行传输。这里如果我们想通过java来做同样的事情,那么该怎么做呢?
我不知道我怎么能说这种不同让你明白,但这里有云:
你在Java中的选择基本上是相同的:
- 您可以使用FTP。例如,在目标机器上,将源文件的路径名转换为“ftp:// ...”URL,并使用
java.net.URL.connect()
来拉取它。可能有第三方Java库可用于将文件“推送”到FTP服务器。 - 如果您的操作系统是通过文件系统交叉安装设置的,您可以执行常规文件复制,就像您的代码一样。
- 您可以使用
java.lang.System.exec(...)
来运行一些特定于Windows的命令行实用程序来执行复制。
在所有情况下,您都需要弄清楚如何映射Windows和Linux世界之间的路径名。
“您需要使用某种文件传输协议来复制文件”的含义是什么。这是通过UNIX框吗?我需要通过Java程序。请帮忙 – vishnu 2010-10-15 16:37:36
不是同一台机器上的文件? – 2010-10-16 13:12:47
@Vanchinathan Chandrasekaran - 如果是这样,你会如何解释这个短语:*“......那么应用程序如何将目标识别为System1。”*?我认为根本问题是OP *认为Java可以将文件从一台机器奇迹般地复制到另一台机器。 – 2010-10-16 15:31:25
你将不得不详细说明你是否想回答我的朋友。也许你应该阅读Jon Skeet的指南来提问SO:http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx – Aren 2010-10-14 23:27:22