package tcp1.wenjianzifu;import java.io.*;
import java.net.*;public class wenClient {
public wenClient() {
} public static void main(String[] args) throws InterruptedException {
wenClient client1 = new wenClient();
try {
Socket socket = new Socket("127.0.0.1", 3210);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.
getInputStream()));
String userInput;
try { //创建文件输入流对象
FileReader fr = new FileReader("c:\\1.txt");
BufferedReader inn = new BufferedReader(fr);
String aline = null;
while ( (aline = inn.readLine()) != null) { //按行读取的纠错能力比较强,本行的错误不影响到其他行
System.out.println("按行读取" + aline);
out.println(aline);
//wf.write("\r\n");
}
fr.close();
inn.close();
fr.close(); }
catch (IOException ioe) {
System.out.println(ioe);
}
catch (Exception e) {
System.out.println(e);
} }
catch (IOException ex) {
ex.printStackTrace();
}
}}
//---------------------------服务器
package tcp1.wenjianzifu;import java.io.*;
import java.net.*;public class wenServer {
private static int i = 0;
public static void main(String args[]) {
Thread td1 = new Thread("oneth") {
public void run() {
ServerSocket myserver = null;
try {
myserver = new ServerSocket(3210);
System.out.println("正在监听");
}
catch (Exception e1) {
e1.printStackTrace();
}
while (true) {
Socket you = null;
try {
you = myserver.accept();
}
catch (IOException e) {
}
if (you != null) { //处理相应的请求。以上请求是在客户端不为空的情况下
i++;
System.out.println("共有" + String.valueOf(i) + "台连接服务器");
System.out.println("client connected...");
new Server_rankFind(you).start();
}
}
}
};
td1.start();
}
}class Server_rankFind
extends Thread {
Socket socket;
String s1 = null;
PrintWriter out1 = null;
BufferedReader in1 = null;
Server_rankFind(Socket t) {
socket = t;
try {
out1 = new PrintWriter(socket.getOutputStream(), true);
in1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
catch (IOException e) {
}
} public void run() { while (true) { try {
s1 = in1.readLine();
System.out.println(s1 + "我读到的数据");
FileWriter wf = new FileWriter("c:\\2.txt");//-------------------------------------
wf.write(s1);
System.out.println("\n");
//----------------------------------------------------------------------
}
catch (IOException e) {
try {
e.printStackTrace();
socket.close();
}
catch (Exception eee) {
System.out.println(eee.getMessage() + "eee");
}
System.out.println("客户离开了");
break;
} }
}
}
代码可以通过
import java.net.*;public class wenClient {
public wenClient() {
} public static void main(String[] args) throws InterruptedException {
wenClient client1 = new wenClient();
try {
Socket socket = new Socket("127.0.0.1", 3210);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.
getInputStream()));
String userInput;
try { //创建文件输入流对象
FileReader fr = new FileReader("c:\\1.txt");
BufferedReader inn = new BufferedReader(fr);
String aline = null;
while ( (aline = inn.readLine()) != null) { //按行读取的纠错能力比较强,本行的错误不影响到其他行
System.out.println("按行读取" + aline);
out.println(aline);
//wf.write("\r\n");
}
fr.close();
inn.close();
fr.close(); }
catch (IOException ioe) {
System.out.println(ioe);
}
catch (Exception e) {
System.out.println(e);
} }
catch (IOException ex) {
ex.printStackTrace();
}
}}
//---------------------------服务器
package tcp1.wenjianzifu;import java.io.*;
import java.net.*;public class wenServer {
private static int i = 0;
public static void main(String args[]) {
Thread td1 = new Thread("oneth") {
public void run() {
ServerSocket myserver = null;
try {
myserver = new ServerSocket(3210);
System.out.println("正在监听");
}
catch (Exception e1) {
e1.printStackTrace();
}
while (true) {
Socket you = null;
try {
you = myserver.accept();
}
catch (IOException e) {
}
if (you != null) { //处理相应的请求。以上请求是在客户端不为空的情况下
i++;
System.out.println("共有" + String.valueOf(i) + "台连接服务器");
System.out.println("client connected...");
new Server_rankFind(you).start();
}
}
}
};
td1.start();
}
}class Server_rankFind
extends Thread {
Socket socket;
String s1 = null;
PrintWriter out1 = null;
BufferedReader in1 = null;
Server_rankFind(Socket t) {
socket = t;
try {
out1 = new PrintWriter(socket.getOutputStream(), true);
in1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
catch (IOException e) {
}
} public void run() { while (true) { try {
s1 = in1.readLine();
System.out.println(s1 + "我读到的数据");
FileWriter wf = new FileWriter("c:\\2.txt");//-------------------------------------
wf.write(s1);
System.out.println("\n");
//----------------------------------------------------------------------
}
catch (IOException e) {
try {
e.printStackTrace();
socket.close();
}
catch (Exception eee) {
System.out.println(eee.getMessage() + "eee");
}
System.out.println("客户离开了");
break;
} }
}
}
代码可以通过
下面的写法,会把文件原有的数据覆盖掉,只有最新写入的内容
FileWriter wf = new FileWriter("c:\\2.txt");
wf.write(s1);
每次都打开文件,没有关闭,是不是有问题
rf.seek(rf.length());
rf.writeBytes(lineString+"\r\n");
rf.close();