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;
      }    }
  }
}
代码可以通过

解决方案 »

  1.   

    先确保你的文件存在,如果不存在怎么处理  创建文件或者放弃写入
       下面的写法,会把文件原有的数据覆盖掉,只有最新写入的内容
        FileWriter wf = new FileWriter("c:\\2.txt");
        wf.write(s1);
        每次都打开文件,没有关闭,是不是有问题
      

  2.   

    RandomAccessFile rf=new RandomAccessFile(path,"rw"); 
    rf.seek(rf.length());
    rf.writeBytes(lineString+"\r\n");
    rf.close();