java远程读写文件详解

求一个远程读写文件的代码,最好注释,已知对方电脑的用户名、密码、ip和文件路径,谢谢了!

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

/**
* @author lmq
*
*/
public class RemoteFile {

public static void main(String[] args) throws Exception {
File remoteFile = new File("//192.168.7.146/test/1.txt");// 192.168.7.146是对方机器IP,test是对方那个共享文件夹名字,如果没有共享是访问不到的
//远程文件其实主要是地址,地址弄对了就和本地文件没什么区别 ,windows里面//或者\\\\开头就表示这个文件是网络路径了其实这个地址就像我们再windows里面,点击开始
//然后点击运行,然后输入 \\192.168.7.146/test/1.txt访问远程文件一样的

BufferedReader br = new BufferedReader(new FileReader(remoteFile));
String str;
while ((str = br.readLine()) != null) {
System.out.println(str);
}
br.close();
}
}

希望能帮到你。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-11
实现上传下载实际上就是io的转换。举例:
import hkrt.b2b.view.util.Log;
import hkrt.b2b.view.util.ViewUtil;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

public class CCFCCBFTP {

/**
* 上传文件
*
* @param fileName
* @param plainFilePath 明文文件路径路径
* @param filepath
* @return
* @throws Exception
*/
public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FTPClient ftpClient = new FTPClient();
String bl = "false";
try {
fis = new FileInputStream(plainFilePath);
bos = new ByteArrayOutputStream(fis.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
Log.info("加密上传文件开始");
Log.info("连接远程上传服务器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
}
}
Log.info("检查文件路径是否存在:/"+filepath);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon( "查询文件路径不存在:"+"/"+filepath);
return bl;
}
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 设置文件类型(二进制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(fileName, fis);
Log.info("上传文件成功:"+fileName+"。文件保存路径:"+"/"+filepath+"/");
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}

}

/**
*下载文件
*
* @param localFilePath
* @param fileName
* @param routeFilepath
* @return
* @throws Exception
*/
public static String fileDownloadByFtp(String localFilePath, String fileName,String routeFilepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FileOutputStream fos = null;
FTPClient ftpClient = new FTPClient();
String SFP = System.getProperty("file.separator");
String bl = "false";
try {
Log.info("下载并解密文件开始");
Log.info("连接远程下载服务器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
// ftpClient.connect(CMBCUtil.CMBCHOSTNAME, 2021);
// ftpClient.login(CMBCUtil.CMBCLOGINNAME, CMBCUtil.CMBCLOGINPASSWORD);
FTPFile[] fs;

ftpClient.makeDirectory(routeFilepath);
ftpClient.changeWorkingDirectory(routeFilepath);
bl = "false";
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(fileName)) {
bl = "true";
Log.info("下载文件开始。");
ftpClient.setBufferSize(1024);
// 设置文件类型(二进制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
InputStream is = ftpClient.retrieveFileStream(fileName);
bos = new ByteArrayOutputStream(is.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = is.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
fos = new FileOutputStream(localFilePath+SFP+fileName);
fos.write(bos.toByteArray());
Log.info("下载文件结束:"+localFilePath);
}
}
Log.info("检查文件是否存:"+fileName+" "+bl);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon("查询无结果,请稍后再查询。");
return bl;
}
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (fos != null) {
try {
fos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}
}}
备注:以上方法就实现了流的二进制上传下载转换,只需要将服务器连接部分调整为本地的实际ftp服务用户名和密码即可。
第2个回答  2011-08-02
如果可以共享,有权限,和读写本地一样。

java远程读写文件详解
\/\/远程文件其实主要是地址,地址弄对了就和本地文件没什么区别 ,windows里面\/\/或者\\\\\\开头就表示这个文件是网络路径了其实这个地址就像我们再windows里面,点击开始 \/\/然后点击运行,然后输入 \\\\192.168.7.146\/test\/1.txt访问远程文件一样的 BufferedReader br = new BufferedReader(new FileReader(re...

Java怎么读取远程服务器上的共享文件夹
1。通过http请求进行静态资源,首先确定文件的URL地址,然后通过URLConnection进行连接,然后通过读取连接中返回的InputStream,再通过文件输出流FileOutputStream进行存储(下载)。2.通过FTP或SFTP进行远程文件的下载,具体实现有很多第三方的包,百度即可。

Resin viewfile 远程文件读取
通过访问特定路径,能够实现远程文件读取。具体路径如下:访问\/resin-doc\/viewfile\/?file=config.xml可获取config.xml文件,访问\/resin-doc\/viewfile\/?file=WEB-INF\/resin-web.xml则可读取resin-web.xml文件,以此类推,访问\/resin-doc\/viewfile\/?file=index.jsp可读取index.jsp文件,访问\/resin-doc\/v...

JAVA中如何通过IP 、端口连接到远程计算机,并读取文件。
通过IP只能进行通信,要想操作远程计算机,必须在远程计算机中运行自己写好的java程序,监听你通过socket之类发送的消息,根据消息内容,进行制定操作,如果只是本地计算机写一个程序操作远程,必然是不可能的 首先你都没权限

JAVA中如何通过IP和端口连接到远程计算机并读取文件?
import java.net.*;import java.io.*;public class FtpConn { public static void main(String [] args)throws Exception { URL u=new URL("ftp:\/\/ppmm:1111@localhost\/read1.txt");URLConnection urlconn=u.openConnection();BufferedReader br=new BufferedReader(new ...

java远程创建文件夹与文件
两种思路:1。直接用FILE类,但是有权限的问题。你要保证你登陆本地的帐户在远程电脑上也存在。2。通过流传递过去,可以参考JAR包-FILEUPLOAD。

Java怎么通过远程读取流的方式将远程文件放到本地
远程通过socket将数据读取过来,然后通过io流保存在本地文件。

如何使用java远程传输文件,client只提供ip\\文件路径等参数,server端无...
1 ftp传输应用情况,加入在linux系统端有一些文件需要下载到用户电脑client端,而linux系统又不是web服务器,那么可以通过java程序FTP方式登录到linux,读取文件转换为流输出到用户IE端, java访问Linux服务器读取文件 所需jar包:j2ssh-core-0.2.2.jar 2 socket方式,可以应用于比如server-client 聊天...

[java]如何在windows下读取远程的linux下面的文件?
这个功能和系统无关……http ftp 都行,直接网络映射也可以,但是需要对方的 Linux 支持。所以一般还是 http\/ftp 方便很多。--- update:只要两边都支持的文件传送协议就行了。

Java实现远程文件复制(基于SCP命令)
SCP命令的基本使用SCP的基本语法为:scp [参数] [源文件] [目标路径],参数可以设置传输选项,如使用-r进行文件夹递归复制,-C开启压缩,-p保持文件属性等。例如,从本地到远程服务器的命令为:scp -r \/opt\/files root@192.168.158.128:\/opt\/。Java实现在Java中,可以借助JSch库来调用SCP命令。

相似回答