JAVA网络编程07---TCPdemo1客户端发送服务端接收并写入txt文件

回忆一下我们之前学习使用IO流实现键盘录入数据的时候的过程

使用字节输出流的时候 InputStream OutputStream都是抽象类我们要使用他们的具体类
先创建一个字节输出流,参数就是一个文件的地址
FileOutPutStream(String pathname)
FileOutPutStream(File file)
或者用
BufferedOutputStream(OutputStream output )
参数是一个字节输出流,因为OutputStream是一个抽象类我们要使用他的子类FileOutputStream来确定文件的位置

代码功能
/*
实现客户端键盘录入数据 录入886时候结束键盘录入 并发送数据
服务器端接收数据 并把数据写入到txt文件

*/

客户端代码

public static void main(String[] args) throws IOException {

//客户端socket对象
Socket socket = new Socket("192.168.0.109",10088);

//键盘录入数据 并使用字符缓冲输入流进行优化
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

//创建socket发送流 使用字符缓冲输出流
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));


//获得键盘录入的数据
String inputData ;
while ( (inputData = br.readLine()) != null){

if (inputData.equals("886")){
break;
}

//不是空就使用socket输出流发送给服务器端
bw.write(inputData);
bw.newLine();
bw.flush();

}


//释放资源
socket.close();

}

服务器端实现接收数据并把数据写入文件

/*
接受客户端发送过来的数据 ,并把数据写入txt文件

文件位置C:\Users\Administrator\IdeaProjects\Day08_thread\MyInternet\src\demo03

*/

public static void main(String[] args) throws IOException {

//创建服务器socket对象
ServerSocket ss = new ServerSocket(10088);

//监听客户端的连接
Socket socket = ss.accept();

//创建socket输入流 并进行封装 封装为字符缓冲输入流
BufferedReader br =new BufferedReader(new InputStreamReader(socket.getInputStream()));

//创建文件对象
FileWriter fr = new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\Day08_thread" +
"\\MyInternet\\src\\demo03\\socketRec.txt",true); //表示追加数据

//创建文件输出流对象
BufferedWriter bw = new BufferedWriter(fr); //为输出流设置目的地 告诉他把文件写到哪里去

//接收客户端发送过来的额数据
String recData ;
while ( (recData = br.readLine()) != null){

//开始写入到文件
bw.write(recData);
bw.newLine(); //换行
bw.flush();

}

//释放资源
ss.close();
br.close();
bw.close();
fr.close();


}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值