时间:2021-05-19
Java实现一个简单的文件上传案例
实现流程:
1.客户端从硬盘读取文件数据到程序中
2.客户端输出流,写出文件到服务端
3.服务端输出流,读取文件数据到服务端中
4.输出流,写出文件数据到服务器硬盘中
下面上代码
上传单个文件
服务器端
package FileUpload;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;public class Server { public static void main(String[] args) throws IOException { System.out.println("服务器端启动"); //创建一个服务器端对象 ServerSocket serverSocket = new ServerSocket(8888); //使用accept获取socket对象 Socket accept = serverSocket.accept(); //使用字节输入流读取 InputStream inputStream = accept.getInputStream(); //创建一个字节输出流输出到本地 FileOutputStream fileOutputStream = new FileOutputStream("F:\\this\\copy1.jpg",true); //创建一个数组循环读取 byte[] bytes = new byte[1024]; int len; while ((len=inputStream.read(bytes))!=-1){ fileOutputStream.write(bytes,0,len); } System.out.println("执行完毕"); fileOutputStream.close(); inputStream.close(); }}客户端
package FileUpload;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;public class Client { public static void main(String[] args) throws IOException { //创建一个Socket对象 Socket socket = new Socket("127.0.0.1", 8888); //读取本地文件 FileInputStream fileInputStream = new FileInputStream("F:\\1.jpeg"); //获取输出流向服务器写入数据 OutputStream outputStream = socket.getOutputStream(); //创建数组读取 byte[] bytes = new byte[1024]; int len; //边都边写 while((len=fileInputStream.read(bytes))!=-1){ outputStream.write(bytes,0,len); outputStream.flush(); } //由于不会写入-1所以调用socket的shutdownOutput方法把前面的数据都写入并且正常终止后面的序列 socket.shutdownOutput(); System.out.println("文件发送完毕"); fileInputStream.close(); outputStream.close(); socket.close(); }}循环上传
客户端代码
package FileUpload;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;public class Client { public static void main(String[] args) throws IOException { //创建一个Socket对象 Socket socket = new Socket("127.0.0.1", 8888); //读取本地文件 FileInputStream fileInputStream = new FileInputStream("F:\\1.jpeg"); //获取输出流向服务器写入数据 OutputStream outputStream = socket.getOutputStream(); //创建数组读取 byte[] bytes = new byte[1024]; int len; //边都边写 while((len=fileInputStream.read(bytes))!=-1){ outputStream.write(bytes,0,len); outputStream.flush(); } //由于不会写入-1所以调用socket的shutdownOutput方法把前面的数据都写入并且正常终止后面的序列 socket.shutdownOutput(); System.out.println("文件发送完毕"); fileInputStream.close(); outputStream.close(); socket.close(); }}服务器端代码
package FileUpload; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket;public class Server { public static void main(String[] args) throws IOException { System.out.println("服务器端启动"); //创建一个服务器端对象 ServerSocket serverSocket = new ServerSocket(8888); //使用while()持续写入数据 while(true){ //使用accept获取socket对象 Socket accept = serverSocket.accept(); //Socket对象交给子线程处理,进行读写操作, new Thread(() ->{ { //使用字节输入流读取 InputStream inputStream = null; try { //文件名 String name = new String("F:\\this\\"+ System.currentTimeMillis()+"copy1.jpg" ); inputStream = accept.getInputStream(); //创建一个字节输出流输出到本地 FileOutputStream fileOutputStream = new FileOutputStream(name,true); //创建一个数组循环读取 byte[] bytes = new byte[1024]; int len; while ((len=inputStream.read(bytes))!=-1){ fileOutputStream.write(bytes,0,len); } System.out.println("执行完毕"); fileOutputStream.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }).start(); } }}循环输入无非就是增加了一个while循环与一点多线程的知识,以上就是一个文件上传的一个简单案例,
到此这篇关于Java实现一个简单的文件上传案例示例代码的文章就介绍到这了,更多相关Java实现文件上传案例内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
FTP上传是PHP实现的一个常见且非常重要的应用技巧,今天就来与大家分享一下PHP实现FTP上传文件的简单示例。希望对大家的PHP学习能带来一定的帮助。主要代码
新手学习记录。写在springboottest示例示例代码地址看结尾。后面有带页面的示例。SpringBootTest无页面简单示例员工请假流程员工发起申请,附
本节引言:1.代码示例:运行效果图:实现代码:先是一个简单的布局:activity_main.xml:接着是我们的MainActiivty.java,同样很简单
最近在做一个图片上传的功能,需要提供上传图片在SD卡中的路径,在网上看了些例子,改改调试成功,代码很简单。其布局文件如下:复制代码代码如下:java文件如下:复
原来以为文件上传是一个比较简单的功能,结果搞了一个晚上才搞定~这里主要介绍两种方法实现。方法一:Form表单提交html代码:上传文件UploadHandler