Pre-requisites and assumptions
- Programming language Java shall be used (jdk1.5 or 1.6).
- Write comments in the program for explaining their functions.
- The exercise should be completed in one day.
- No GUI (Graphical User Interface) components shall be used.
Task
- Two (2) servers shall read one text file each. (Server1 reads textfil1_lasse_solen_i_ogonen.txt and Server2 reads textfil2_lasse_varning_for_ras.txt)
- One (1) client shall read the data from the two servers in parallel. As a suggestion the communication between server and client uses a socket.
- The result shall be one (1) print out of the 5 most occurred words from the two texts with the number of occurrences.
服务器端读文件 就很简单BufferedReader读
本来服务器就是多线程的
然后分别给每个server建立一个和客户端联系的Socket
ServerSocket server = new ServerSocket(这个里面可以写通信的端口);
Socket socket = server.accept(); // 实例化socket
PrintWriter writer = new PrintWriter(server.getOutputStream(), true);
之后用out.println向客户端写内容 //这里写的就是服务器从文本读出来的
客户端 一样要先new Socket 要new 2个,每个对应一个server
之后用BufferedReader读 socket接收过来服务器端输入的stream就可以
- 第2题不是用 BufferedReader读内容了么,readline之后,用StringTokenizer(String str, String delim) 读出每个单词,后面这个delim有点麻烦,因为如果你的文章包括了标点,括号,什么的,需要把单词从这些符号中提取出来 只后只要送到hashmap里面遍历,相同的单词就把个数加1, 最后,要么你送到TreeMap里面重构,输出前5个,要么你就自己按照单词的index排序,输出前5个。。。
谁能翻译下先。。。
要求:
使用jdk1.5或1.6
写注释
1天内完成
不用GUI
需求:
两个server各自读取文件,server1读取textfil1_lasse_solen_i_ogonen.txt,同理server2.
一个client从这两个服务器并行读取数据,建议使用socket通信。
输出结果为两个文本中出现频率最高的5个单词。
最后说错了,因为按照从小到大排列
TreeMap要输出最后一个
for(int i=0, i < 5; i ++) ) {
System.out.println (treeMap.get(treeMap.lastKey()));
然后treeMap.remove(treeMap.lastKey()); 要去掉频率最大那个
}