在下面的代码中,我以 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
[] 符号出现在文本文件中。有什么问题吗?
最佳答案
您正在将 1 到 100 之间的 int
数字转换为 char
作为字节值。这可能不是您想要的,因为这(假设是西方语言)从一开始就相当于 ASCII 表。前 32 个左右的字符是不可打印的内容,例如换行符、蜂鸣声等,它们显然不会进入您的输出。
所以而不是
bw.write((char)i);
您需要将 int 转换为 String,例如。 G。像这样:
bw.write(String.valueOf(i));
关于java - 不打印的数字 [] 出现在文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4343253/