导航:首页 > 文件教程 > java客户端文件

java客户端文件

发布时间:2023-11-04 15:55:13

java客户端怎么把本地的文件上传到服务器

String realpath = ServletActionContext.getServletContext().getRealPath("/upload") ;//获取服务器路径
String[] targetFileName = uploadFileName;
for (int i = 0; i < upload.length; i++) {
File target = new File(realpath, targetFileName[i]);
FileUtils.File(upload[i], target);
//这是一个文件复制类File()里面就是IO操作,如果你不用这个类也可以自己写一回个IO复制文件的类答
}

其中private File[] upload;// 实际上传文件

private String[] uploadContentType; // 文件的内容类型

private String[] uploadFileName; // 上传文件名

这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法

Ⅱ 如何用java读取客户端上传的rar文件

压缩文件的处理和普通的一样,先上传到服务器,然后通过java的解压缩方式将文件解压出来,再进行读取

Ⅲ java客户端接受文件后文件还被线程占用

客户端这边的output对象要关闭,然后清空缓存区域
out.flush();
out.close();
你要注意是不是在客户端监听那个方法里面没有释放文件输入流对象。所以才一直占用。

我觉得出现你这样的问题是因为你socket传输规则有问题。没有提示程序是否接收完毕,所以客户端会一直卡在read方法那里。接收回来的文件对象也没有释放,建议socket传输规则 [文件长度|文件内容] 就是说先接收前面4(你自己定义的)个字节获取整个流的长度。然后在接着读流,这个长度读完了,说明文件接收完。就跳出循环结束接收数据。

Ⅳ java socket编程,客户端发送文件给服务器,服务器接收到文件后如何返回确认信息告诉客户端文件已接收

importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.net.ServerSocket;
importjava.net.Socket;


/**
*
*文件名:ServerReceive.java
*实现功能:作为服务器接收客户端发送的文件
*
*具体实现过程:
*1、建立SocketServer,等待客户端的连接
*2、当有客户端连接的时候,按照双方的约定,这时要读取一行数据
*其中保存客户端要发送的文件名和文件大小信息
*3、根据文件名在本地创建文件,并建立好流通信
*4、循环接收数据包,将数据包写入文件
*5、当接收数据的长度等于提前文件发过来的文件长度,即表示文件接收完毕,关闭文件
*6、文件接收工作结束
*
*
*【注:此代码仅为演示客户端与服务器传送文件使用,
*每一个数据包之前没有文件协议命令
*具体的协议传输和文件传出的使用阶段可根据自己程序自行放置】
*
*
*作者:小菜鸟
*创建时间:2014-08-19
*
**/
publicclassServerReceive{

publicstaticvoidmain(String[]args){

/**与服务器建立连接的通信句柄*/
ServerSocketss=null;
Sockets=null;

/**定义用于在接收后在本地创建的文件对象和文件输出流对象*/
Filefile=null;
FileOutputStreamfos=null;

/**定义输入流,使用socket的inputStream对数据包进行输入*/
InputStreamis=null;

/**定义byte数组来作为数据包的存储数据包*/
byte[]buffer=newbyte[4096*5];

/**用来接收文件发送请求的字符串*/
Stringcomm=null;


/**建立socekt通信,等待服务器进行连接*/
try{
ss=newServerSocket(4004);
s=ss.accept();
}catch(IOExceptione){
e.printStackTrace();
}


/**读取一行客户端发送过来的约定信息*/
try{
InputStreamReaderisr=newInputStreamReader(s.getInputStream());
BufferedReaderbr=newBufferedReader(isr);
comm=br.readLine();
}catch(IOExceptione){
System.out.println("服务器与客户端断开连接");
}

/**开始解析客户端发送过来的请求命令*/
intindex=comm.indexOf("/#");

/**判断协议是否为发送文件的协议*/
Stringxieyi=comm.substring(0,index);
if(!xieyi.equals("111")){
System.out.println("服务器收到的协议码不正确");
return;
}

/**解析出文件的名字和大小*/
comm=comm.substring(index+2);
index=comm.indexOf("/#");
Stringfilename=comm.substring(0,index).trim();
Stringfilesize=comm.substring(index+2).trim();


/**创建空文件,用来进行接收文件*/
file=newFile(filename);
if(!file.exists()){
try{
file.createNewFile();
}catch(IOExceptione){
System.out.println("服务器端创建文件失败");
}
}else{
/**在此也可以询问是否覆盖*/
System.out.println("本路径已存在相同文件,进行覆盖");
}

/**【以上就是客户端代码中写到的服务器的准备部分】*/


/**
*服务器接收文件的关键代码*/
try{
/**将文件包装到文件输出流对象中*/
fos=newFileOutputStream(file);
longfile_size=Long.parseLong(filesize);
is=s.getInputStream();
/**size为每次接收数据包的长度*/
intsize=0;
/**count用来记录已接收到文件的长度*/
longcount=0;

/**使用while循环接收数据包*/
while(count<file_size){
/**从输入流中读取一个数据包*/
size=is.read(buffer);

/**将刚刚读取的数据包写到本地文件中去*/
fos.write(buffer,0,size);
fos.flush();

/**将已接收到文件的长度+size*/
count+=size;
System.out.println("服务器端接收到数据包,大小为"+size);
}

}catch(FileNotFoundExceptione){
System.out.println("服务器写文件失败");
}catch(IOExceptione){
System.out.println("服务器:客户端断开连接");
}finally{
/**
*将打开的文件关闭
*如有需要,也可以在此关闭socket连接
**/
try{
if(fos!=null)
fos.close();
}catch(IOExceptione){
e.printStackTrace();
}//catch(IOExceptione)
}//finally

}//publicstaticvoidmain(String[]args)
}//publicclassServerReceive

Ⅳ Java文件上传获取不到客户端文件

你好像理会错了点东西。
上传是从客户端读取文件,通过流传输。服务器接收数据,并写入文件。
所以FileInputStream fis=new FileInputStream(fromPath);
这样的代码根本就有问题。

Ⅵ Java怎样把文件写入到客户端的硬盘上


packagetest;

importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;

publicclassTest{
publicstaticvoidmain(String[]args)throwsFileNotFoundException{
Stringsource="helloworld!";
StringfilePath="c:\file.txt";
StringnewFilePath="c:\"+System.currentTimeMillis()+".txt";

saveFile1(source);
saveFile2(filePath,newFilePath);

}

/**
*直接写入数据
*@paramsource
*@return
*/
publicstaticbooleansaveFile1(Stringsource){
bytebuf[]=source.getBytes();
try(FileOutputStreamfs=newFileOutputStream("c:\file.txt")){
for(inti=0;i<buf.length;i++){
fs.write(buf[i]);
}
returntrue;
}catch(Exceptione){
e.printStackTrace();
}
returnfalse;
}
/**
*读取文件另存为
*@paramfilePath
*@paramnewFilePath
*@return
*/
publicstaticbooleansaveFile2(StringfilePath,StringnewFilePath){
Filefile=newFile(filePath);
if(file.exists()&&file.isFile()){
try(FileInputStreamfi=newFileInputStream(file);
FileOutputStreamfs=newFileOutputStream(newFilePath))
{
intbuf;
while((buf=fi.read())!=-1){
fs.write(buf);
}
returntrue;
}catch(Exceptione){
e.printStackTrace();
}
}
returnfalse;
}
}

阅读全文

与java客户端文件相关的资料

热点内容
word2007层次结构 浏览:456
去掉文件名的数字 浏览:713
word公司 浏览:710
淘宝店数据包怎么上传 浏览:341
pbt文件 浏览:204
HX基础编程怎么改变字体 浏览:876
怎么开网络教学 浏览:915
630升级工程武器 浏览:936
用换机助手接收的软件文件在哪找 浏览:282
阅达app一教一辅五年级有哪些 浏览:7
win10系统用f2调节音量 浏览:19
压缩文件密码器 浏览:840
线下活动数据分析有哪些 浏览:314
助听器插片式编程线如何连接 浏览:293
怎么删除系统休眠文件 浏览:914
搜索文件内容中包含的文字并替换 浏览:542
微信相册程序图标 浏览:714
win8怎么显示文件格式 浏览:547
文件服务器中毒 浏览:721
如何修改网站访问次数 浏览:518

友情链接