導航:首頁 > 文件教程 > java傳輸文件夾

java傳輸文件夾

發布時間:2021-10-25 06:19:44

A. java怎麼傳送文件夾下面所有的文件有沒有什麼可行的程序

File 下面有個listFile方法可以遍歷一個文件夾下的所有文件,你可以去看看那

B. java中如何將上傳的圖片復制到指定文件夾中。

public static void File(File sourceFile, File targetFile) throws IOException {
BufferedInputStream inBuff=null;
BufferedOutputStream outBuff=null;
try {
// 新建文件輸入流並對它進行緩沖
inBuff=new BufferedInputStream(new FileInputStream(sourceFile));

// 新建文件輸出流並對它進行緩沖
outBuff=new BufferedOutputStream(new FileOutputStream(targetFile));

// 緩沖數組
byte[] b=new byte[1024 * 5];
int len;
while((len=inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
// 刷新此緩沖的輸出流
outBuff.flush();
} finally {
// 關閉流
if(inBuff != null)
inBuff.close();
if(outBuff != null)
outBuff.close();
}
}

C. java文件上傳文件路徑

String newFilePath = "new Path" + "\\" + newfile.getFileName;

File file = new File(String newFilePath);

D. JAVA實現文件夾傳輸

//這是一個傳輸的程序.下面是兩個程序,一個名為MyClient,
//是客戶端.另一個名為MyServer,為伺服器端.這兩個程序實現的
//是將客戶端的e盤名為"1"的文件夾里的所有內容傳輸到伺服器端
//的e盤名為"2"的文件夾里.運行時,一定要先運行MyServer,否則會
//出錯.這個程序我用兩台電腦在區域網里運行過多次,一切正常,速度
//在600KB/s左右.如果運行MyServer後,再運行MyClient時,出現錯誤
//建議再運行一下.因為它們可能在建立連接時由於網路連接不好而
//未能連接成功而出錯.程序是肯定沒有問題的.
import java.io.*;
import java.net.*;
public class MyClient
{
Socket client;
boolean flag=true;
FileInputStream fis;//此輸入流負責讀取本機上要傳輸的文件
DataOutputStream dos;//此輸出流負責向另一台電腦(伺服器端)傳輸數據
DataInputStream dis;//此輸入流負責讀取另一台電腦的回應信息
public static void main(String[] args)
{
new MyClient().ClientStart();
}
public void ClientStart()
{
try
{
client=new Socket("192.168.2.101",30000);//伺服器端的IP,(這個只是在區域網內的)我的是這個,你的根據實際而定
//client=new Socket("localhost",30000);
System.out.println("已連接");
dos=new DataOutputStream(client.getOutputStream());
dis=new DataInputStream(client.getInputStream());
transmit(new File("e:\\1\\"));
String s="/]00";//提示傳輸完畢的標記
byte b[]=s.getBytes();
dos.write(b,0,s.length());
dos.flush();
}
catch(IOException e)
{
System.out.println("Error");
}
}
public void transmit(File f)throws IOException//這是傳輸的核心,而且將被遞歸
{
byte b[];
String ts;
int ti;
for(File f1:f.listFiles())
{ //首先通過if語句判斷f1是文件還是文件夾
if(f1.isDirectory()) //fi是文件夾,則向伺服器端傳送一條信息
{
ts="/]0f"+(f1.getPath().replace("e:\\1\\",""));//"/]0f"用於表示這條信息的內容是文件夾名稱
b=ts.getBytes();
dos.write(b);
dos.flush();
dis.read();
transmit(f1);//由於f1是文件夾(即目錄),所以它裡面很有可能還有文件或者文件夾,所以進行遞歸
}
else
{
fis=new FileInputStream(f1);
ts="/]0c"+(f1.getPath().replace("e:\\1\\",""));//同上,表示這是一個文件的名稱
b=ts.getBytes();
dos.write(b);
dos.flush();
dis.read();
dos.writeInt(fis.available());//傳輸一個整型值,指明將要傳輸的文件的大小
dos.flush();
dis.read();
b=new byte[10000];
while(fis.available()>0)//開始傳送文件
{
ti=fis.read(b);
dos.write(b,0,ti);
dos.flush();
}
dos.flush();
fis.close();
dis.read();
}
}

}
}

import java.io.*;
import java.net.*;
public class MyServer
{
ServerSocket server=null;
Socket client=null;
boolean flag=true;
DataInputStream dis;
DataOutputStream dos;
FileOutputStream fos;
public static void main(String[] args)
{
new MyServer().ServerStart();
}
public void ServerStart()
{
try
{
server=new ServerSocket(30000);
System.out.println("埠號:"+server.getLocalPort());
client=server.accept();
System.out.println("連接完畢");
dis=new DataInputStream(client.getInputStream());
dos=new DataOutputStream(client.getOutputStream());
String answer="g";
byte ans[]=answer.getBytes();
byte b[]=new byte[1000];
int ti;
new File("e:\\2").mkdirs();
while(flag)
{
ti=dis.read(b);
dos.write(ans);
String select=new String(b,0,ti);
if(select.contains("/]0f"))
{
File f=new File("e:\\2\\"+(select.replace("/]0f","")));
System.out.println("creat directory");
f.mkdirs();
}
else if(select.contains("/]0c"))
{
fos=new FileOutputStream("e:\\2\\"+(select.replace("/]0c","")));
String cs;
boolean cflag=true;
int tip=dis.readInt();
dos.write(ans);
while(tip>0)
{
ti=dis.read(b,0,(tip>1000?1000:tip));
tip=tip-ti;
cs=new String(b,0,4);
fos.write(b,0,ti);
}
fos.flush();
fos.close();
dos.write(ans);
}
else if(select.contains("/]00"))
{
flag=false;
}
}
dis.close();
client.close();
server.close();
}
catch(IOException e)
{
System.out.println("Error");
}
}
}

E. JAVA 傳輸文件

//以前寫的一個文件傳輸的小程序,有客戶端和伺服器端兩部分,伺服器可//以一直運行,客戶端傳輸完一個後退出,當然你也可以根據你的需要改。
//伺服器端可以支持多個客戶端同時上傳,用到了多線程
/**
* 文件傳輸,客戶端
* @aurth anyx
*/
//package per.anyx.ftp;

import java.net.*;
import java.io.*;

public class FtpClient{
public static void main(String[] args){
if(args.length != 3){
System.out.println("Usage: FtpClient host_add host_port src_file");
System.exit(0);
}
File file = new File(args[2]);
if(!file.exists() || !file.isFile()){
System.out.println("File \"" + args[2] + "\" does not exist or is not a normal file.");
System.exit(0);
}
Socket s = null;
FileInputStream in = null;
OutputStream out = null;
try{
s = new Socket(args[0], Integer.parseInt(args[1]));
in = new FileInputStream(file);
out = s.getOutputStream();

byte[] buffer = new byte[1024*8];
int len = -1;
System.out.println("File tansfer statr...");
while((len=in.read(buffer)) != -1){
out.write(buffer, 0, len);
}
System.out.println("File tansfer complete...");
}catch(Exception e){
System.out.println("Error: " + e.getMessage());
System.exit(1);
}finally{
try{
if(in != null) in.close();
if(out != null) out.close();
if(s != null) s.close();
}catch(Exception e){}
}
}
}

/**
* 文件傳輸,伺服器端
* @aurth anyx
*/
//package per.anyx.ftp;

import java.net.*;
import java.io.*;

public class FtpServer{
public static void main(String[] args){
if(args.length != 1){
System.out.println("Usage: FtpServer server_port");
System.exit(0);
}
ServerSocket ss = null;
try{
ss = new ServerSocket(Integer.parseInt(args[0]));
System.out.println("FtpServer start on port ..." + args[0]);
while(true){
Socket s = ss.accept();
new FtpThread(s).start();
System.out.println(s.getInetAddress().getHostAddress() + " connected.");
}
}catch(Exception e){
System.out.println("Error: " + e.getMessage());
}finally{
try{
if(ss != null) ss.close();
}catch(Exception e){}
}
}
}

class FtpThread extends Thread{
Socket s;
long fileName = 0;
public FtpThread(Socket s){
this.s = s;
}
public void run(){
FileOutputStream out = null;
InputStream in = null;
File file = null;
do{
file = new File("" + (fileName++));
}while(file.exists());
try{
out = new FileOutputStream(file);
in = s.getInputStream();

byte[] buffer = new byte[1024*8];
int len = -1;
while((len=in.read(buffer)) != -1){
out.write(buffer, 0, len);
}
}catch(Exception e){
System.out.println("Error: " + e.getMessage());
}finally{
try{
if(in != null) in.close();
if(out != null) out.close();
if(s != null) s.close();
System.out.println(s.getInetAddress().getHostAddress() + " connect closed..");
}catch(Exception e){}
}
}
}

F. 怎樣用java實現壓縮傳輸文件夾

java有ZIP相關的類用來把文件夾打包成zip文件,然後傳輸
或者用ZIPInputStream/ZIPoutputStream壓縮數據流來傳輸
不知道你要的是哪種

G. java怎麼把文件傳輸到file

common-fileupload是jakarta項目組開發的一個功能很強大的上傳文件組件
下面先介紹上傳文件到伺服器(多文件上傳):
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.util.regex.*;
import org.apache.commons.fileupload.*;

public class upload extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GB2312";
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
try {
DiskFileUpload fu = new DiskFileUpload();
// 設置允許用戶上傳文件大小,單位:位元組,這里設為2m
fu.setSizeMax(2*1024*1024);
// 設置最多隻允許在內存中存儲的數據,單位:位元組
fu.setSizeThreshold(4096);
// 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬碟的目錄
fu.setRepositoryPath("c://windows//temp");
//開始讀取上傳信息
List fileItems = fu.parseRequest(request);
// 依次處理每個上傳的文件
Iterator iter = fileItems.iterator();
//正則匹配,過濾路徑取文件名
String regExp=".+////(.+)$";
//過濾掉的文件類型
String[] errorType={".exe",".com",".cgi",".asp"};
Pattern p = Pattern.compile(regExp);
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
//忽略其他不是文件域的所有表單信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals("")) && size==0)
continue;
Matcher m = p.matcher(name);
boolean result = m.find();
if (result){
for (int temp=0;temp<ERRORTYPE.LENGTH;TEMP++){
if (m.group(1).endsWith(errorType[temp])){
throw new IOException(name+": wrong type");
}
}
try{
//保存上傳的文件到指定的目錄
//在下文中上傳文件至資料庫時,將對這里改寫
item.write(new File("d://" + m.group(1)));
out.print(name+" "+size+"");
}
catch(Exception e){
out.println(e);
}
}
else
{
throw new IOException("fail to upload");
}
}
}
}
catch (IOException e){
out.println(e);
}
catch (FileUploadException e){
out.println(e);
}

}
}
現在介紹上傳文件到伺服器,下面只寫出相關代碼
以sql2000為例,表結構如下:
欄位名:name filecode
類型: varchar image
資料庫插入代碼為:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");
代碼如下:
。。。。。。
try{
這段代碼如果不去掉,將一同寫入到伺服器中
//item.write(new File("d://" + m.group(1)));

int byteread=0;
//讀取輸入流,也就是上傳的文件內容
InputStream inStream=item.getInputStream();
pstmt.setString(1,m.group(1));
pstmt.setBinaryStream(2,inStream,(int)size);
pstmt.executeUpdate();
inStream.close();
out.println(name+" "+size+" ");
}
。。。。。。
這樣就實現了上傳文件至資料庫

H. 怎麼用java封裝一個文件夾類,來實現發送文件夾功能

給你個思路
先通過File的isDirectory判斷是否為文件夾如果是則創建文件夾,否則下載文件
創建文件夾後在尋找子文件夾中的內容
同樣是上面的過程
可以思考使用遞歸來實現
其實文件夾上傳
就是創建好文件夾在下載裡面的文件,如果有子文件夾在創建子文件夾並下載子文件夾中的文件。
多半使用遞歸來實現

I. java怎麼把文件上傳到項目指定文件夾中知道的私聊我,獎勵大大的

代碼如下:

import java.io.*;
/**
* 復制文件夾或文件夾
*/
public class CopyDirectory {
// 源文件夾
static String url1 = "f:/photos";
// 目標文件夾
static String url2 = "d:/tempPhotos";
public static void main(String args[]) throws IOException {
// 創建目標文件夾
(new File(url2)).mkdirs();
// 獲取源文件夾當前下的文件或目錄
File[] file = (new File(url1)).listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isFile()) {
// 復制文件
File(file[i],new File(url2+file[i].getName()));
}
if (file[i].isDirectory()) {
// 復制目錄
String sourceDir=url1+File.separator+file[i].getName();
String targetDir=url2+File.separator+file[i].getName();
Directiory(sourceDir, targetDir);
}
}
}
// 復制文件
public static void File(File sourceFile,File targetFile)
throws IOException{
// 新建文件輸入流並對它進行緩沖
FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff=new BufferedInputStream(input);

// 新建文件輸出流並對它進行緩沖
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff=new BufferedOutputStream(output);

// 緩沖數組
byte[] b = new byte[1024 * 5];
int len;
while ((len =inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
// 刷新此緩沖的輸出流
outBuff.flush();

//關閉流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
// 復制文件夾
public static void Directiory(String sourceDir, String targetDir)
throws IOException {
// 新建目標目錄
(new File(targetDir)).mkdirs();
// 獲取源文件夾當前下的文件或目錄
File[] file = (new File(sourceDir)).listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isFile()) {
// 源文件
File sourceFile=file[i];
// 目標文件
File targetFile=new
File(new File(targetDir).getAbsolutePath()
+File.separator+file[i].getName());
File(sourceFile,targetFile);
}
if (file[i].isDirectory()) {
// 准備復制的源文件夾
String dir1=sourceDir + "/" + file[i].getName();
// 准備復制的目標文件夾
String dir2=targetDir + "/"+ file[i].getName();
Directiory(dir1, dir2);
}
}
}
}

J. 求JAVA文件夾上傳解決方案

必須使用插件,單純瀏覽器無法實現。

閱讀全文

與java傳輸文件夾相關的資料

熱點內容
linux啟動選擇內核 瀏覽:670
華碩用什麼編程 瀏覽:277
金山數據恢復已付款怎麼辦 瀏覽:326
win10滑鼠箭頭改變 瀏覽:906
主角叫凌寒的小說 瀏覽:230
word怎麼在字加框 瀏覽:537
俄二戰電影舊槍普通話在線觀看 瀏覽:387
電影看見大胸女 瀏覽:541
tcpstate配置文件 瀏覽:939
著名片站 瀏覽:103
一段簡單的編程由什麼組成 瀏覽:561
手機android文件夾沒有內容 瀏覽:281
寶書網txt官網入口當書網 瀏覽:10
四創大數據 瀏覽:547
少兒編程能做出哪些游戲 瀏覽:156
大數據分析趙麗穎價值 瀏覽:2
iphone來自電腦的照片怎麼刪除 瀏覽:648
姜惠恩禁止的愛 瀏覽:981
三君四妾by小透明 瀏覽:585
修車女女電影 瀏覽:451

友情鏈接