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下载一个文本文件相关推荐

  1. java socket 读取文件_java中ServerSocket读取文件流不是分行读取

    在学习socket的TCP通讯 在使用 TCP传一个文件时 遇到这样两个问题 1. 服务端流读取时一次性读了所有内容 而不是分行读取 2. 自动刷新不生效 代码如下 package com.fuge. ...

  2. java scanner 读取文件_Java读取文本文件

    有很多方法可以在java中读取文本文件.下面我们来逐个看看java中读取文本文件的几个方法. 在java中有很多读取文本文件的方法.文本文件由字符组成,因此可以使用Reader类.在java中读取文本 ...

  3. java io读取文件_java io读取文件操作代码实例

    这篇文章主要介绍了java io读取文件操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 主要分为字节读取和字符读取,字节读取可以一个一个 ...

  4. java逐行读取文件_Java逐行读取文件

    java逐行读取文件 Today we will look into different java read file line by line methods. Sometimes we have ...

  5. java socket 阻塞模式_Java中Socket Read阻塞问题

    本人来说并不熟悉JAVA语言,只是近期在分析某个简单的java agent程序时,根据对应的代码写了一个对接的程序,两者之间是典型的C/S socket编程.客户端在向服务端发送相应的指令后,服务端( ...

  6. java tcp ip通信_Java中Socket实现TCP/IP协议的通信

    TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的. Jav ...

  7. java socket调用接口_Java中socket接口调用

    最近一个项目中接口通讯这一块主要是调用银联系统的socket接口,我方是客户端,即发送请求接收返回报文的一方.在贴代码之前,还是要了解一下关于socket的基础知识. Socket的基本概念 1.建立 ...

  8. java 一行行读取文件_Java中按行读取文件

    本文译自Java read a file line by line – How Many Ways? 转载请注明出处. Java中的I/O类非常多,什么时候该用什么类经常让人困惑.下面两段代码展示了如 ...

  9. java 以二进制读取文件_JAVA中读取文件(二进制,字符)内容的几种方法总结

    public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public static void readFileB ...

最新文章

  1. mysql主从配置读写分离笔记
  2. 在Excel单元格中使用下拉框
  3. 英特尔、高通争战物联网芯片 下个霸主会是谁
  4. pymongo连接mongodb的replset
  5. python脚本如何监听终止进程行为,如何通过脚本名获取pid
  6. oracle学习-存储过程返回一个值,和返回一个结果集
  7. SVN 放弃修改或撤销删除
  8. 机器学习模型中step与epoch,batch_size之间的关系
  9. java pc端软件抓包,如何通过抓包工具fiddler获取java程序的http请求
  10. flask 重定向(redirect)和会话(session)
  11. dd大牛《背包九讲》(转载)
  12. C# 委托与事件总结
  13. [C++]什么是句柄?为什么会有句柄?
  14. 微信小程序上线,后台接口失效问题
  15. oeasy教您玩转vim - 48 - # ed由来
  16. 基金定投需要注意波段操作!(文章有点长,含Python代码)
  17. 如何快速搭建一个简单图像搜索引擎
  18. k8s集群二进制部署 1.17.3
  19. sakai mysql_Sakai中使用MySQL数据库
  20. 关于Unity中的资源管理,你可能遇到这些问题(UWA报告)

热门文章

  1. 如何设置显示内容而不是显示对象
  2. mybatis系列-06-输入映射
  3. ubuntu 下LAMP服务器环境搭建
  4. Ubuntu10.04中间Leach协议一键安装
  5. RMAN-06023: no backup or copy of datafile 6 found to restore
  6. 用康托展开实现全排列(STL、itertools)
  7. hdu 1512 Monkey King 左偏树
  8. [转]从java角度理解cpu上下切换
  9. asp.net treeview 控件父子节点级联选中
  10. Vue和后台交互的方式