网络编程客户端向服务器上传文件
来源:互联网 发布:db ol联机网上数据库 编辑:程序博客网 时间:2024/05/22 05:30
服务端
import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;public class file_server {/** * @param args * @throws IOException */public static void main(String[] args) throws IOException {//3,建立多线程的服务器ServerSocket server = new ServerSocket(12345);System.out.println("服务器启动,绑定12345端口号");//4.读取文件名while(true) {final Socket socket = server.accept();//接受请求new Thread() {public void run() {try {InputStream is = socket.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));PrintStream ps = new PrintStream(socket.getOutputStream());String fileName = br.readLine();//5.判断文件是否存在, 将结果发回客户端File dir = new File("update");dir.mkdir();//创建文件夹File file = new File(dir,fileName);//封装成File对象if(file.exists()) {//如果服务器已经存在这个文件ps.println("存在");//将存在写给客户端socket.close();//关闭socketreturn;}else {ps.println("不存在");}//8.定义FileOutputStream, 从网络读取数据, 存储到本地FileOutputStream fos = new FileOutputStream(file);byte[] arr = new byte[8192];int len;while((len = is.read(arr)) != -1) {fos.write(arr, 0, len);}fos.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}.start();}}}
客户端
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;public class file_client {/** * @param args * @throws IOException * @throws UnknownHostException */public static void main(String[] args) throws UnknownHostException, IOException {// 1.提示输入要上传的文件路径, 验证路径是否存在以及是否是文件夹File file = getFile();// 2.发送文件名到服务端Socket socket = new Socket("127.0.0.1", 12345);BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintStream ps = new PrintStream(socket.getOutputStream());ps.println(file.getName());// 6.接收结果, 如果存在给予提示, 程序直接退出String result = br.readLine();//读取存在后不存在的结果if("存在".equals(result)) {System.out.println("您上传的文件已经存在,请不要重复上传");socket.close();return;}// 7.如果不存在, 定义FileInputStream读取文件, 写出到网络FileInputStream fis = new FileInputStream(file);byte[] arr = new byte[8192];int len;while((len = fis.read(arr)) != -1) {ps.write(arr, 0, len);}fis.close();socket.close();}private static File getFile() {Scanner sc = new Scanner(System.in);//创建键盘录入对象System.out.println("请输入一个文件路径:");while(true) {String line = sc.nextLine();File file = new File(line);if(!file.exists()) {System.out.println("您录入的文件路径不存在,请重新录入:");}else if(file.isDirectory()) {System.out.println("您录入的是文件夹路径,请输入一个文件路径:");}else {return file;}}}}
阅读全文
0 0
- 网络编程客户端向服务器上传文件
- Test_Java_网络编程(模拟客户端向服务器上传文件)
- 网络编程-多线程改进客户端上传文件
- 网络编程之使用HttpClient上传文件的客户端和服务器
- JAVA_ 网络编程,写一个可以上传文件的服务器和客户端
- 向服务器上传文件
- 应用ASP.NET向网络服务器上传文件
- 网络编程,服务器客户端
- 网络编程-客户端读取文件_服务器写入文件
- 向服务器上传文件程序
- 如何向服务器上传文件
- C#向服务器上传文件
- 网络编程-客户端键盘录入_服务器写入文件
- 客户端文件上传服务器(AF)
- Test_Java_网络编程(客户端向服务器发送字符串,服务器将字符串反转后发送给客户端)
- 一个简单地应用--从客户端向服务器发送数据.post,get.httpclientget,httpclinetpost,文件上传.
- Xshell 5+lrzsz实现Windows客户端向CentOS服务器上传文件
- 网络编程--文件上传
- Softmax回归
- c++基础知识(1)
- SecureCRT自动记录日志设置
- 标题栏与水平滑动界面:TabLayout、ViewPager、Fragment;;引导页:ViewPager+View
- [Codeforces799F] [哈希] Beautiful fountains rows
- 网络编程客户端向服务器上传文件
- keepalived高可用部署_单实例——rpm版
- Linux <getopt>
- [Lintcode]二叉树的最大节点
- C++作业6
- cin.ignore()函数的用法
- activiti基础应用
- 页式虚拟存储与TLB快表
- 【IE11】兼容低IE版本的设置方法