需要利用BufferedReader 与 BufferedWriter 进行读取与撰写,利用客户端进行对需要的文本利用FileReader进行读取,写入Socket中的getOutStream的字节流。
利用服务端进行创建文本,利用FileWriter进行对Socket中getInputStream中传入的数据进行writer写入新创建的文本中。`
服务端
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class TextServer {
/*
* 需求:将客户端输入的字符串利用服务端进行存储
* 1.建立服务端
* 2,服务端接受
* 3.利用自带getOutStream
* 4,对传入的数据进行封装成text文档利用FileWriter fw = new FileWrite("demo.txt");
* ,
*
* */
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//1.
ServerSocket ss = new ServerSocket(10005);
//2.
Socket s = ss.accept();
//获取IP
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+".......");
//获取Socket读取流,并装饰
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//创建文档来进行存储
BufferedWriter bufr = new BufferedWriter( new FileWriter("C:\\TextServer.txt"));
String str = null;
while((str = bufIn.readLine())!= null) {
//System.out.println(str);
bufr.write(str);
bufr.newLine();//进行分行
}
bufr.close();
s.close();
ss.close();
}
}
客户端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class TransClient {
public static void main(String[] args) throws IOException, IOException {
// TODO Auto-generated method stub
/*
* 客户端
* 1.需要先有socket端点
* 2.客户端的数据源:键盘
* 3.客户端的目的:socket
* 4.接受服务端的数据:源socket
* 5。将数据显示在打印出来,目的:控制台
* 6.在这些流中操作的数据都是文本数据
*
* 转换客户端
* 1.创建socket客户端对象
* 2.获取键盘录入
* 3.将录入的信息发送给socket输出流
*
* */
//1创建socket对象
Socket s = new Socket("192.168.1.102",10004);
//2获取键盘录入
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
//3.socket输出流
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
//4.socket输入流,将服务端返回的大写数据
BufferedReader bufrIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = null;
while((line = bufr.readLine())!= null) {
if("over".equals(line))
break;
out.println(line);
//读取服务端发回的大写字母
String upper = bufrIn.readLine();
System.out.println(upper);
}
}
}