java socket 读取文件_Java中Socket下载一个文本文件
package com.lanqiao.demo2;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author
* @version 创建时间:2017年6月12日 上午8:47:37
* 类说明:服务端上传一个txt类型的文件
* 注意:服务端是一直不关闭的
*/
public class TestServer {
// 这个路径是我电脑上的一个记事本文件
private static final String PATH = "D:\\JavaFile_Test\\test\\网上JDK环境变量配置.txt";
public static void main(String[] args) {
int count = 0;
OutputStream os = null;
ServerSocket severscoket = null;
Socket s1 = null;
BufferedInputStream bis =null;
int len=0;
try {
// 创建 Socket 服务
severscoket = new ServerSocket(8888);
while (true) {
// 阻塞
s1 = severscoket.accept();
//服务端被连接的次数
count++;
System.out.println("---服务端开启 " + count + " 次---");
// 服务端写入文件
os = s1.getOutputStream();
//创建一个BufferedInputStream对象读取我电脑上的文件
bis = new BufferedInputStream(new FileInputStream(PATH));
//每次写入512个字节
byte[] b = new byte[512];
while ((len = bis.read(b)) != -1) {
os.write(b, 0, len);
}
s1.shutdownOutput();
os.flush();
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} finally {
try {
if (os != null)
os.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
package com.lanqiao.demo2;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.Socket;
/**
* @author
* @version 创建时间:2017年6月12日 上午9:04:36
* 类说明:客户端打印出从服务端下载的txt内容
*/
public class TestClient {
public static void main(String[] args) {
BufferedInputStream bis = null;
Socket socket = null;
int len=0;
try {
// 通过IP地址和端口号创建一个Socket对象
socket = new Socket("127.0.0.1", 8888);
// 客户端读取文件
bis = new BufferedInputStream(socket.getInputStream());
// 每次读512个字节
byte[] b = new byte[512];
//当读取的字节不为空 循环打印下载的内容
while ((len = bis.read(b)) != -1) {
System.out.println(new String(b, 0, len));
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} finally {
//关闭客户端的输入流对象 和 Socket对象
try {
if(bis!=null) bis.close();
if(socket!=null) socket.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
java socket 读取文件_Java中Socket下载一个文本文件相关推荐
- java socket 读取文件_java中ServerSocket读取文件流不是分行读取
在学习socket的TCP通讯 在使用 TCP传一个文件时 遇到这样两个问题 1. 服务端流读取时一次性读了所有内容 而不是分行读取 2. 自动刷新不生效 代码如下 package com.fuge. ...
- java scanner 读取文件_Java读取文本文件
有很多方法可以在java中读取文本文件.下面我们来逐个看看java中读取文本文件的几个方法. 在java中有很多读取文本文件的方法.文本文件由字符组成,因此可以使用Reader类.在java中读取文本 ...
- java io读取文件_java io读取文件操作代码实例
这篇文章主要介绍了java io读取文件操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 主要分为字节读取和字符读取,字节读取可以一个一个 ...
- java逐行读取文件_Java逐行读取文件
java逐行读取文件 Today we will look into different java read file line by line methods. Sometimes we have ...
- java socket 阻塞模式_Java中Socket Read阻塞问题
本人来说并不熟悉JAVA语言,只是近期在分析某个简单的java agent程序时,根据对应的代码写了一个对接的程序,两者之间是典型的C/S socket编程.客户端在向服务端发送相应的指令后,服务端( ...
- java tcp ip通信_Java中Socket实现TCP/IP协议的通信
TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的. Jav ...
- java socket调用接口_Java中socket接口调用
最近一个项目中接口通讯这一块主要是调用银联系统的socket接口,我方是客户端,即发送请求接收返回报文的一方.在贴代码之前,还是要了解一下关于socket的基础知识. Socket的基本概念 1.建立 ...
- java 一行行读取文件_Java中按行读取文件
本文译自Java read a file line by line – How Many Ways? 转载请注明出处. Java中的I/O类非常多,什么时候该用什么类经常让人困惑.下面两段代码展示了如 ...
- java 以二进制读取文件_JAVA中读取文件(二进制,字符)内容的几种方法总结
public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public static void readFileB ...
最新文章
- mysql主从配置读写分离笔记
- 在Excel单元格中使用下拉框
- 英特尔、高通争战物联网芯片 下个霸主会是谁
- pymongo连接mongodb的replset
- python脚本如何监听终止进程行为,如何通过脚本名获取pid
- oracle学习-存储过程返回一个值,和返回一个结果集
- SVN 放弃修改或撤销删除
- 机器学习模型中step与epoch,batch_size之间的关系
- java pc端软件抓包,如何通过抓包工具fiddler获取java程序的http请求
- flask 重定向(redirect)和会话(session)
- dd大牛《背包九讲》(转载)
- C# 委托与事件总结
- [C++]什么是句柄?为什么会有句柄?
- 微信小程序上线,后台接口失效问题
- oeasy教您玩转vim - 48 - # ed由来
- 基金定投需要注意波段操作!(文章有点长,含Python代码)
- 如何快速搭建一个简单图像搜索引擎
- k8s集群二进制部署 1.17.3
- sakai mysql_Sakai中使用MySQL数据库
- 关于Unity中的资源管理,你可能遇到这些问题(UWA报告)