當前位置:首頁 » 編程語言 » java伺服器文件下載

java伺服器文件下載

發布時間: 2024-12-25 19:54:11

『壹』 java從伺服器下載文件時,為什麼必須先創建一個和伺服器文件大小相同的臨時文件

這是習慣,因為你不這樣,文件大小就是在下載過程中動態變化,這不是好事。。。改變文件大小本身就有一系列對文件系統的操作,因為第一次被分配的文件位置並不一定有這么大的連續空間,增大文件大小,那麼只能從別的空間找然後連接到這個文件上,邏輯上是連續的,物理上是不連續的,那麼文件就在存儲器上就變成分散的了,也就是分成好多碎片,在不同的位置,這對於讀寫來說嚴重影響速度。。。因為無論是硬碟還是flash都不是隨機存儲器,以分散就要頻繁的定位。。。
最好是讓文件在連續的區域內,那麼你一開始就設定大小,那麼系統會盡量分配到連續的存儲區,

『貳』 求用java寫一個ftp伺服器客戶端程序。

import java.io.*;
import java.net.*;public class ftpServer extends Thread{ public static void main(String args[]){
String initDir;
initDir = "D:/Ftp";
ServerSocket server;
Socket socket;
String s;
String user;
String password;
user = "root";
password = "123456";
try{
System.out.println("MYFTP伺服器啟動....");
System.out.println("正在等待連接....");
//監聽21號埠
server = new ServerSocket(21);
socket = server.accept();
System.out.println("連接成功");
System.out.println("**********************************");
System.out.println("");

InputStream in =socket.getInputStream();
OutputStream out = socket.getOutputStream();

DataInputStream din = new DataInputStream(in);
DataOutputStream dout=new DataOutputStream(out);
System.out.println("請等待驗證客戶信息....");

while(true){
s = din.readUTF();
if(s.trim().equals("LOGIN "+user)){
s = "請輸入密碼:";
dout.writeUTF(s);
s = din.readUTF();
if(s.trim().equals(password)){
s = "連接成功。";
dout.writeUTF(s);
break;
}
else{s ="密碼錯誤,請重新輸入用戶名:";<br> dout.writeUTF(s);<br> <br> }
}
else{
s = "您輸入的命令不正確或此用戶不存在,請重新輸入:";
dout.writeUTF(s);
}
}
System.out.println("驗證客戶信息完畢...."); while(true){
System.out.println("");
System.out.println("");
s = din.readUTF();
if(s.trim().equals("DIR")){
String output = "";
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
for(int i=0;i<dirStructure.length;i++){
output +=dirStructure[i]+"\n";
}
s=output;
dout.writeUTF(s);
}
else if(s.startsWith("GET")){
s = s.substring(3);
s = s.trim();
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
String e= s;
int i=0;
s ="不存在";
while(true){
if(e.equals(dirStructure[i])){
s="存在";
dout.writeUTF(s);
RandomAccessFile outFile = new RandomAccessFile(initDir+"/"+e,"r");
byte byteBuffer[]= new byte[1024];
int amount;
while((amount = outFile.read(byteBuffer)) != -1){
dout.write(byteBuffer, 0, amount);break;
}break;

}
else if(i<dirStructure.length-1){
i++;
}
else{
dout.writeUTF(s);
break;
}
}
}
else if(s.startsWith("PUT")){
s = s.substring(3);
s = s.trim();
RandomAccessFile inFile = new RandomAccessFile(initDir+"/"+s,"rw");
byte byteBuffer[] = new byte[1024];
int amount;
while((amount =din.read(byteBuffer) )!= -1){
inFile.write(byteBuffer, 0, amount);break;
}
}
else if(s.trim().equals("BYE"))break;
else{
s = "您輸入的命令不正確或此用戶不存在,請重新輸入:";
dout.writeUTF(s);
}
}

din.close();
dout.close();
in.close();
out.close();
socket.close();
}
catch(Exception e){
System.out.println("MYFTP關閉!"+e);

}
}}

『叄』 java代碼實現從svn伺服器下載文件到本地

首先你要安裝svn客戶端,安裝完成以後你右鍵選擇svn中的import,輸入你伺服器端代碼的地址,下載路徑什麼的自己配置,其他不用管,點擊OK就可以了,不過你要有read許可權才行。

『肆』 java怎樣讀取http文件伺服器上的文件列表並下載

把要下載的文件名存在資料庫中,載入頁面通過servlet或者action或者採用javaBean讀取資料庫數據,然後遍歷出來,再通過servlet或者action的outputstream下載即可

『伍』 java上傳文件到伺服器java實現文件上傳的三種方式

一、需求
在項目開發中,遇到需要將頁面上的文件上傳至本地保存,之後這個上傳的文件還能進行訪問,後台是Spring Boot框架搭建的,只需將文件上傳至Spring Boot項目編譯之後的classes\static\文件夾中即可。如下圖:
二、文件上傳
1、 定義文件上傳介面方法
// 在pom.xml引入spring-boot-starter-web依賴,即可導包import org.springframework.web.multipart.MultipartFile;// fileRoot:上傳文件保存的根路徑String upload(MultipartFile file, String fileRoot) throws IOException;2、文件上傳介面方法實現
@Overridepublic String upload(MultipartFile file, String fileRoot) throws IOException { prepareFilePath(fileRoot); // 獲取上傳文件的原文件名 String fileName = file.getOriginalFilename(); // 規則化之後的文件上傳根路徑 String normalizeFileRoot = getNormalizeFileRoot(fileRoot); // 根據路徑和文件名創建目標文件 File targetFile = new File(normalizeFileRoot, fileName); // 如果目標文件存在,刪除 if (targetFile.exists()) targetFile.delete(); // 將目標文件進行轉移 file.transferTo(targetFile); return String.format("%s\\%s", normalizeFileRoot, fileName);}/** fileRoot:上傳文件保存的根路徑 此方法是准備文件上傳的路徑,如果路徑不存在,即創建*/private void prepareFilePath(String fileRoot) { File file = new File(Helper.normalizePath(fileRoot)); if (!file.exists()) file.mkdirs();}/** 該方法主要對文件路徑進行規則化,如:D:\\\360Browser\///360Chrome\\//, 像這種路徑就不正確,此方法可以將路徑規則化為:D:\360Browser\360Chrome*/private String getNormalizeFileRoot(String fileRoot) { return Helper.normalizePath(fileRoot);}Helper工具類中的路徑規則化方法
public static String normalizePath(String path) { String result = path.replaceAll("/+", Matcher.quoteReplacement(File.separator)); return result.replaceAll("\\\\+", Matcher.quoteReplacement(File.separator));}3、Controller
@PostMapping("/upload")public RequestResult upload(@RequestParam("file") MultipartFile file) throws IOException { Config config = configService.get("Upload", "FileRoot"); String filePath = busService.upload(file, config.getValue()); return RequestResult.success(filePath);}三、測試
1、 使用Postman進行文件上傳測試
2、 在瀏覽器中輸入定位文件.doc,可以將文件下載到本地

熱點內容
win7共享文件訪問許可權 發布:2024-12-26 08:33:22 瀏覽:147
安卓如何下載play商店app 發布:2024-12-26 08:32:31 瀏覽:498
我的世界網易伺服器卡崩進不去 發布:2024-12-26 08:20:48 瀏覽:738
sqlserver導出xml 發布:2024-12-26 08:06:26 瀏覽:289
wifi無訪問許可權 發布:2024-12-26 08:05:33 瀏覽:674
win10怎麼輸入無線密碼 發布:2024-12-26 08:05:33 瀏覽:676
如何查看科目二預約密碼 發布:2024-12-26 08:02:45 瀏覽:260
魚的生理鹽水怎麼配置 發布:2024-12-26 07:56:59 瀏覽:906
問道手游有腳本嗎 發布:2024-12-26 07:53:50 瀏覽:842
安卓刷機會怎麼樣 發布:2024-12-26 07:51:15 瀏覽:540