1、Java怎麼讀取遠程伺服器上的共享文件夾
ava獲取遠程文件的方式在我的開發過程中使用過兩種
1。通過http請求進行靜態資專源,首先確定文件的屬URL地址,然後通過URLConnection進行連接,然後通過讀取連接中返回的InputStream,再通過文件輸出流FileOutputStream進行存儲(下載)。
2.通過FTP或SFTP進行遠程文件的下載,具體實現有很多第三方的包,百度即可。
2、java上傳圖片到遠程伺服器上,怎麼解決呢?
不好實現,網上有方法說用FTP,但是不會用啊,找了一個public static void forcdt(String dir){InputStream in = null;OutputStream out = null;File localFile = new File(dir);try{//創建file類 傳入本地文件路徑//獲得本地文件的名字String fileName = localFile.getName();//將本地文件的名字和遠程目錄的名字拼接在一起//確保上傳後的文件於本地文件名字相同SmbFile remoteFile = new SmbFile("smb://administrator:[email protected]/e$/aa/");//創建讀取緩沖流把本地的文件與程序連接在一起in = new BufferedInputStream(new FileInputStream(localFile));//創建一個寫出緩沖流(注意jcifs-1.3.15.jar包 類名為Smb開頭的類為控制遠程共享計算機"io"包)//將遠程的文件路徑傳入SmbFileOutputStream中 並用 緩沖流套接out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile+"/"+fileName));//創建中轉位元組數組byte[] buffer = new byte[1024];while(in.read(buffer)!=-1){//in對象的read方法返回-1為 文件以讀取完畢out.write(buffer);buffer = new byte[1024];}}catch(Exception e){e.printStackTrace();}finally{try{//注意用完操作io對象的方法後關閉這些資源,走則 造成文件上傳失敗等問題。!out.close();
3、如何使用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 聊天窗,傳輸文字;
3 http協議,這種就是最常用的了,比如打開IE下載,上傳東西,java是通過jsp servlet來實現的,然後部署放在tomcat web 伺服器上,在其他區域網環境下的電腦登錄IE即可訪問到。沒有特殊jar,只用java servlet的jar即可。例子如附件,可能上傳不成功哈,百度百度會有很多哈
4、javaweb 怎麼樣將本地文件傳輸到遠程伺服器
可以通過JDK自帶的API實現,如下代碼:
package com.cloudpower.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
/**
* Java自帶的API對FTP的操作
* @Title:Ftp.java
*/
public class Ftp {
/**
* 本地文件名
*/
private String localfilename;
/**
* 遠程文件名
*/
private String remotefilename;
/**
* FTP客戶端
*/
private FtpClient ftpClient;
/**
* 伺服器連接
* @param ip 伺服器IP
* @param port 伺服器埠
* @param user 用戶名
* @param password 密碼
* @param path 伺服器路徑
* @date 2012-7-11
*/
public void connectServer(String ip, int port, String user,
String password, String path) {
try {
/* ******連接伺服器的兩種方法*******/
//第一種方法
// ftpClient = new FtpClient();
// ftpClient.openServer(ip, port);
//第二種方法
ftpClient = new FtpClient(ip);
ftpClient.login(user, password);
// 設置成2進制傳輸
ftpClient.binary();
System.out.println("login success!");
if (path.length() != 0){
//把遠程系統上的目錄切換到參數path所指定的目錄
ftpClient.cd(path);
}
ftpClient.binary();
} catch (IOException ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
public void closeConnect() {
try {
ftpClient.closeServer();
System.out.println("disconnect success");
} catch (IOException ex) {
System.out.println("not disconnect");
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
public void upload(String localFile, String remoteFile) {
this.localfilename = localFile;
this.remotefilename = remoteFile;
TelnetOutputStream os = null;
FileInputStream is = null;
try {
//將遠程文件加入輸出流中
os = ftpClient.put(this.remotefilename);
//獲取本地文件的輸入流
File file_in = new File(this.localfilename);
is = new FileInputStream(file_in);
//創建一個緩沖區
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
System.out.println("upload success");
} catch (IOException ex) {
System.out.println("not upload");
ex.printStackTrace();
throw new RuntimeException(ex);
} finally{
try {
if(is != null){
is.close();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(os != null){
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public void download(String remoteFile, String localFile) {
TelnetInputStream is = null;
FileOutputStream os = null;
try {
//獲取遠程機器上的文件filename,藉助TelnetInputStream把該文件傳送到本地。
is = ftpClient.get(remoteFile);
File file_in = new File(localFile);
os = new FileOutputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
System.out.println("download success");
} catch (IOException ex) {
System.out.println("not download");
ex.printStackTrace();
throw new RuntimeException(ex);
} finally{
try {
if(is != null){
is.close();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(os != null){
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String agrs[]) {
String filepath[] = { "/temp/aa.txt", "/temp/regist.log"};
String localfilepath[] = { "C:\\tmp\\1.txt","C:\\tmp\\2.log"};
Ftp fu = new Ftp();
/*
* 使用默認的埠號、用戶名、密碼以及根目錄連接FTP伺服器
*/
fu.connectServer("127.0.0.1", 22, "anonymous", "IEUser@", "/temp");
//下載
for (int i = 0; i < filepath.length; i++) {
fu.download(filepath[i], localfilepath[i]);
}
String localfile = "E:\\號碼.txt";
String remotefile = "/temp/哈哈.txt";
//上傳
fu.upload(localfile, remotefile);
fu.closeConnect();
}
}
5、java如何執行遠程伺服器上的.sh文件
你可以使用JSch
JSch全稱是「Java Secure Channel」
是SSH2的一個純Java實現。它允許你連接到一個sshd 伺服器,使用埠轉發,X11轉發,文件傳輸等等。同時也是支持執行命令;
以下是大概運行的代碼,只是提供大致思路,可以去查官方API和demo
import com.jcraft.jsch.ChannelExec;6、java如何實現遠程訪問伺服器並將本地的class文件替換到伺服器指定目錄上???
使用Jenkins 來實現自動化部署
7、java上傳圖片到遠程伺服器上,怎麼解決呢?
不好實現,網上有方法說用FTP,但是不會用啊,找了一個public static void forcdt(String dir){InputStream in = null;OutputStream out = null;File localFile = new File(dir);try{//創建file類 傳入本地文件路徑//獲得本地文件的名字String fileName = localFile.getName();//將本地文件的名字和遠程目錄的名字拼接在一起//確保上傳後的文件於本地文件名字相同SmbFile remoteFile = new SmbFile("smb://administrator:[email protected]/e$/aa/");//創建讀取緩沖流把本地的文件與程序連接在一起in = new BufferedInputStream(new FileInputStream(localFile));//創建一個寫出緩沖流(注意jcifs-1.3.15.jar包 類名為Smb開頭的類為控制遠程共享計算機"io"包)//將遠程的文件路徑傳入SmbFileOutputStream中 並用 緩沖流套接out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile+"/"+fileName));//創建中轉位元組數組byte[] buffer = new byte[1024];while(in.read(buffer)!=-1){//in對象的read方法返回-1為 文件以讀取完畢out.write(buffer);buffer = new byte[1024];}}catch(Exception e){e.printStackTrace();}finally{try{//注意用完操作io對象的方法後關閉這些資源,走則 造成文件上傳失敗等問題。!out.close();in.close();
8、java 怎樣追加文本到遠程伺服器上的文件,利用ftpclient
ftpClient.setRestartOffset(remoteSize);方法嘗試把移動指針到遠端文件的末尾,在用ftpClient.appendFileStream()獲取輸出流wirte();
9、Java怎麼上傳文件到遠程Windows伺服器
安裝一個FTP就可以直接上傳下載了,你可以去伺服器廠商(正睿)的網上找找相關技術文檔參考一下,很快就清楚了!
10、Java怎麼通過遠程讀取流的方式將遠程文件放到本地
以下回答為本人意見,如果有誤還請見諒。
java獲取遠程文件的方式在我的開發過程中使用過兩種
1。通過http請求進行靜態資源,首先確定文件的URL地址,然後通過URLConnection進行連接,然後通過讀取連接中返回的InputStream,再通過文件輸出流FileOutputStream進行存儲(下載)。
2.通過FTP或SFTP進行遠程文件的下載,具體實現有很多第三方的包,百度即可。