?? paperdaoimpbyweb.java
字號:
/**
*
*/
package exam.dao;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import exam.model.Paper;
import exam.model.Question;
/**
* @author 董曉煒
*
* Feb 13, 2009 10:54:54 AM
*/
public class PaperDaoImpByWeb implements PaperDao{
private Socket s;
public PaperDaoImpByWeb(Socket s){
this.s=s;
}
public Paper getPaper(String subject){//從服務器端讀取試卷文件,在客戶端進行解析,包裝成一張試卷
PrintWriter pw=null;
BufferedReader br=null;
Paper p=null;
try {
pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream(),"UTF-8"));
pw.println("paper:"+subject);
pw.flush();
br=new BufferedReader(new InputStreamReader(s.getInputStream(),"UTF-8"));
String str=null;
List<String> sl=new ArrayList<String>();
List<Question> ql=new ArrayList<Question>();
do{ str=br.readLine();
if(str.equals("isStop"))return null;
if(str.equals("")){
Question q=new Question(sl);
ql.add(q);
sl.clear();
break;
}
if(str.equals("again"))continue;
if(str.equals("stop"))continue;
if("0123456789".indexOf(str.charAt(0))!=-1&&sl.size()!=0){
Question q=new Question(sl);
ql.add(q);
sl.clear();
}
sl.add(str);
}while(true);
p=new Paper(ql);
} catch (IOException e) {
if(s!=null){
try {
e.printStackTrace();
s.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
return p;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -