java 读取远程文件

1、远程读取数据的原则,是存在url可以指向该文件。
2、很显然,你的局域网上,肯定是不行的。
3、方法:通过ftp或是发布到网上的方式,提供一个可访问到的网络地址就可以了。

❷ Java怎么通过远程读取流的方式将远程文件放到本地

以下回答为本人意见,如果有误还请见谅。
java获取远程文件的方式在我的开发过程中使用过两种
1。通过http请求进行静态资源,首先确定文件的URL地址,然后通过URLConnection进行连接,然后通过读取连接中返回的InputStream,再通过文件输出流FileOutputStream进行存储(下载)。
2.通过FTP或SFTP进行远程文件的下载,具体实现有很多第三方的包,网络即可。

❸ Java怎么通过远程读取流的方式将远程文件放到本地 急急急!! 谢谢啦

你说的远程是Web服务器么?如果是Web服务器就用URLConnection,前提是知道远程文件的URL地址;如果是CS架构的服务就用Socket编程,前提是知道IP地址和服务端口以及请求的通讯报文格式。其他还有FTP服务等,情况不一样的。你需要把问题具体化。

❹ 谁清楚Java中如何从网络读取文本文件资源啊急急急

JDK类库包含了一组丰富的、为网络通信而设计的类,使用它们能轻松地检索和阅读网络文件。如下选取秒秒学Java程序的代码所示:
try {
//给出要读取文件内容的网络地址
URL url = new URL("http://services.explorecalifornia.org/rss/tours.php");
//打开输入流
InputStream stream = url.openStream();
//实例化缓冲流
BufferedInputStream buf = new BufferedInputStream(stream);
//实例化StringBuilder类
StringBuilder sb = new StringBuilder();
//循环读取和拼接字符串
while (true) {
int data = buf.read();
if (data == -1) {
break;
} else {
sb.append((char) data);
}
}
//输出读取到的文本内容
System.out.println(sb);
} catch (IOException e) {
e.printStackTrace();
}

❺ 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 InputStreamReader(urlconn.getInputStream()));
String line;
while(null!=(line=br.readLine()))
{
System.out.println(line);
}
}
}
ftp://ppmm:1111@localhost/read1.txt
其中localhost是ftp server地址
ppmm是用户名
1111是密码
匿名用户不用写用户名和密码如
ftp://localhost/read1.txt
就可以了

❻ java远程读写文件详解

实现上传下载实际上就是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服务用户名和密码即可。

❼ Java怎么读取远程服务器上的共享文件夹

ava获取远程文件的方式在我的开发过程中使用过两种
1。通过http请求进行静态资源,专首先确定文件的URL地址,然后通过属URLConnection进行连接,然后通过读取连接中返回的InputStream,再通过文件输出流FileOutputStream进行存储(下载)。
2.通过FTP或SFTP进行远程文件的下载,具体实现有很多第三方的包,网络即可。

❽ java 读取远程url文件

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