/**
* 服务端
* 负责发送数据
*/
public class SocketServerTest {
private static final int PORT = 5359;
public static void main(String[] args) {
ServerSocket server = null;
Socket socket = null;
DataOutputStream out = null;
try {
server = new ServerSocket(PORT);
//等待客户端 连接端口
socket = server.accept();
out = new DataOutputStream(socket.getOutputStream());
//readFileByLines(out, "f://test.txt", 1000);
readFileByLines(out, args[0], Long.valueOf(args[1]));
} catch (Exception e) {
e.printStackTrace();
try {
out.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
/**
* 以行为单位读取文件,常用于读面向行的格式化文件
*/
public static void readFileByLines(DataOutputStream out, String fileName, long time) {
File file = new File(fileName);
BufferedReader reader = null;
try {
//System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
Thread.sleep(time);
byte[] bytes = tempString.getBytes();
byte[] temp = new byte[bytes.length + 2];
temp[0] = 2;
temp[temp.length - 1] = 13;
ArrayUtil.arraycopy(bytes, 0, temp, 1, bytes.length);
out.write(temp);
out.flush();
// 显示行号
//System.out.println("line " + line + ": " + tempString);
line++;
}
reader.close();
} catch (IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch (InterruptedException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
System.out.println(e1.getMessage());
}
}
}
}
}
d打包成jar包后,用java -jar jar位置 参数1(文件位置) 参数2(间隔时间)启动