2010-12-03 39 views
0

在下面的代碼中,我輸入的jsp格式的問題,答案被輸入到文本文件中。但它的前面數字必須打印不打印的號碼[]正在輸入文本文件

<%@ page language="java" import="java.io.*" errorPage="" %> 
<% 

     /* String num=request.getParameter("qnum"); 
    session.setAttribute("quesnum",num);*/ 

    String q=request.getParameter("qn"); 
    session.setAttribute("question",q); 

    String opt1=request.getParameter("A"); 
    session.setAttribute("a",opt1); 

    String opt2=request.getParameter("B"); 
    session.setAttribute("b",opt2); 

    String opt3=request.getParameter("C"); 
    session.setAttribute("c",opt3); 

    String opt4=request.getParameter("D"); 
    session.setAttribute("d",opt4); 

    String ans=request.getParameter("ANS"); 
    session.setAttribute("answer",ans); 


%> 

<html> 
<head> 
<title>Text File</title> 
</head> 

<body> 
<% 



File f=new File("D:\\Program Files\\Tomcat 6.0\\webapps\\ROOT\\tst.txt"); 
f.createNewFile(); 
try 
{ 

BufferedWriter bw=new BufferedWriter(new FileWriter(f,true)); 

    int num=1; 

    bw.newLine(); 
while(num<100) 
    { 

     bw.write((char)num); 
     bw.write("|"); 
    bw.write(q); 

     bw.write("|"); 
    bw.write(opt1); 

     bw.write("|"); 
    bw.write(opt2); 

     bw.write("|"); 
    bw.write(opt3); 

     bw.write("|"); 
    bw.write(opt4); 

     bw.write("|"); 
     bw.write(ans); 

     bw.flush(); 


bw.close(); 
} 

num++; 
} 
catch(Exception e) 
{ 
} 
%> 

</body> 
</html> 

Output must be 
1|quest1|option a |option b|option c|option d| and:a 
2|quest2|option a |option b|option c|option d| and:b 
3|quest3|option a |option b|option c|option d| and:d 

but instead of 1 2 3 i get 
[]|quest1|option a |option b|option c|option d| and:a 

[]符號是在文本文件中。有什麼問題?

回答

2

您正在將數字從1到100的int轉換爲char作爲字節值。這可能不是你想要的,因爲這是 - 假設西方語言 - 從一開始就相當於ASCII表格。前32個字符是不可打印的東西,如換行符,嗶嗶聲等,顯然不會將它輸入到輸出中。

所以不是

bw.write((char)i); 

你需要你的INT轉換爲字符串,如G。像這樣:

bw.write(String.valueOf(i)); 
+0

感謝ü它工作正常,但是當我進入第二個問題接下來的時間,但它仍然顯示1! ! – Sumithra 2010-12-03 07:31:28

2

這裏

bw.write((char)num); 

你轉換的數量(例如1)爲char,但你要的號碼打印成字符串:

bw.write(String.valueOf(num)); 

是解決方案簡單

bw.write(String.format("%d", i)); 

稍微好一點的是使數字格式(對齊,前導零,...)