import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class four1 { static int []sum = new int[100]; public void input() throws IOException { int nummin, nummax; String str1; String str2; char []ch= {'+','-','*','/'}; int cha; File f = new File("C:/D/log.txt"); FileOutputStream fop = new FileOutputStream(f); // 构建FileOutputStream对象,文件不存在会自动新建 OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8"); // 构建OutputStreamWriter对象,参数可以指定编码,默认为操作系统默认编码,windows上是gbk for(int i=0;i<100;i++) { nummax=(int)(Math.random()*1000); nummin=(int)(Math.random()*1000); cha=(int)(Math.random()*4); if(ch[cha]=='+'||ch[cha]=='-') { if(ch[cha]=='+') sum[i]=nummax+nummin; else sum[i]=nummax-nummin; str1=Integer.toString(nummax); str2=Integer.toString(nummin); writer.append(str1); writer.append(ch[cha]); writer.append(str2); writer.append("="); } else if(ch[cha]=='*') { sum[i]=nummax*nummin; nummax=(int)(Math.random()*100); nummin=(int)(Math.random()*100); str1=Integer.toString(nummax); str2=Integer.toString(nummin); writer.append(str1); writer.append(ch[cha]); writer.append(str2); writer.append("="); } else if(ch[cha]=='/') { nummin=(int)(Math.random()*10)+1; while(nummax%nummin!=0) { nummax=(int)(Math.random()*1000); nummin=(int)(Math.random()*10)+1; } sum[i]=nummax/nummin; str1=Integer.toString(nummax); str2=Integer.toString(nummin); writer.append(str1); writer.append(ch[cha]); writer.append(str2); writer.append("="); } // 写入到缓冲区 writer.append(" "); // 换行 } writer.close(); // 刷新缓存冲,写入到文件,如果下面已经没有写入的内容了,直接close也会写入 // 关闭写入流,同时会把缓冲区内容写入文件,所以上面的注释掉 fop.close(); // 关闭输出流,释放系统资源 FileInputStream fip = new FileInputStream(f); // 构建FileInputStream对象 InputStreamReader reader = new InputStreamReader(fip, "UTF-8"); // 构建InputStreamReader对象,编码与写入相同 StringBuffer sb = new StringBuffer(); while (reader.ready()) { sb.append((char) reader.read()); // 转成char加到StringBuffer对象中 } reader.close(); // 关闭读取流 fip.close(); // 关闭输入流,释放系统资源 } } 复制代码 复制代码 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Scanner; public class four2 { public void name()throws Exception { String in=in("C:/D/log.txt"); System.out.println(in); } private String in(String file) throws IOException { // TODO Auto-generated method stub int num; @SuppressWarnings("resource") Scanner in=new Scanner(System.in); File f=new File(file); @SuppressWarnings("resource") BufferedReader bf=new BufferedReader(new FileReader(f)); String content=""; for(int i=0;i<100;i++) { content=bf.readLine(); System.out.println(content); num=in.nextInt(); if(num==four1.sum[i]) System.out.println("对"); else System.out.println("不对"); } return null; } } 复制代码 复制代码 import java.util.Scanner; public class mian { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub @SuppressWarnings({ "unused", "resource" }) Scanner in=new Scanner(System.in); four1 f1=new four1(); f1.input(); four2 f2=new four2(); f2.name(); } }
以上就是最终的运行代码,其中遇到了很多问题
(1)在编写文件导入的时候,对导入文本TXT还不太了解,上网搜了好多种例子,经过照猫画虎勉勉强强写了出来。
(2)还有就是在不知道该怎么去写回答正确的题目总数,不知道该怎么判断答案是否正确。