java遠程文件讀取文件
❶ 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();
}
}