RT,弄了一个晚上快崩溃了……import java.net.*;
import java.io.*;
import java.util.*;
import java.text.*;
import java.text.SimpleDateFormat;public class TrafficOpServer
{
private static ServerSocket serverSocket;
// private static listenClient listen;
private static String filePath = "f://test.txt"; public static void main(String[] args) throws Exception
{
int port; if (args.length == 0)
{
System.out.println("Usage: java simpleServer [port]");
System.exit(1);
}
port = Integer.parseInt(args[0]);// startServer(port);
serverSocket = new ServerSocket(port);
try
{
while (true)
{
Socket clientSocket = serverSocket.accept();
DataInputStream dataIn = new DataInputStream(clientSocket.getInputStream());
DataOutputStream fileOut = new DataOutputStream(new FileOutputStream(filePath,false));//想把对方传的内容重新写入test.txt,但第一次会清空原来的内容,接下来每次都是在原来的内容后面附加上去……
byte abyte[] = new byte[1024];
int inbytes; do
{
inbytes = dataIn.read(abyte);
if (inbytes != -1)
{
fileOut.write(abyte, 0, inbytes);
}
}
while (inbytes != -1);
dataIn.close();
fileOut.flush();
fileOut.close();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
import java.io.*;
import java.util.*;
import java.text.*;
import java.text.SimpleDateFormat;public class TrafficOpServer
{
private static ServerSocket serverSocket;
// private static listenClient listen;
private static String filePath = "f://test.txt"; public static void main(String[] args) throws Exception
{
int port; if (args.length == 0)
{
System.out.println("Usage: java simpleServer [port]");
System.exit(1);
}
port = Integer.parseInt(args[0]);// startServer(port);
serverSocket = new ServerSocket(port);
try
{
while (true)
{
Socket clientSocket = serverSocket.accept();
DataInputStream dataIn = new DataInputStream(clientSocket.getInputStream());
DataOutputStream fileOut = new DataOutputStream(new FileOutputStream(filePath,false));//想把对方传的内容重新写入test.txt,但第一次会清空原来的内容,接下来每次都是在原来的内容后面附加上去……
byte abyte[] = new byte[1024];
int inbytes; do
{
inbytes = dataIn.read(abyte);
if (inbytes != -1)
{
fileOut.write(abyte, 0, inbytes);
}
}
while (inbytes != -1);
dataIn.close();
fileOut.flush();
fileOut.close();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
从哪儿看出 第一次会清空原来的内容
第二次是:
warden301
warden302
第三次就变成:
warden301
warden302
warden303
然后重新java TrafficOpServer 3232后又变成本来那样……
new File(filePath).delete();
或rename...
inbytes = dataIn.read(abyte);
改为
inbytes = dataIn.read(abyte,0,1024);
试试
DataOutputStream fileOut = new DataOutputStream(new FileOutputStream(filePath,false));
应该是FileOutputStream(filePath,true);
true表示append吧
改为:
DataOutputStream fileOut = new DataOutputStream(new FileOutputStream(filePath,true));试试
BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
BufferedWriter writer = new BufferedWriter(new FileWriter(filepath));String str = reader.readLine();
while (str!= null) {
writer.write(str);
str = reader.readLine();
}writer.flush();
writer.close();
reader.close();
那样完全写不到FILEPATH那个文件里面去……