代碼要求是讀取一個10行兩列的資料,一行除數一行被除數,然后輸出一個4列的新檔案包括除數、被除數、商和余數。當輸入檔案不存在、被除數為0、輸入為小數時均能運行。FileNotFoundException和ArithmeticException出現時均沒有問題。不過當出現InputMismatchException時輸出檔案是空的。Java小白,望大神們幫忙看看,感激不盡!
全部代碼在下面,
import java.util.Scanner;
import java.util.InputMismatchException;
public class File {
public static void main(String[] args) throws java.io.FileNotFoundException {
try {
String encoding="GBK";
java.io.File file = new java.io.File("C:\\Users\\ldq2\\Desktop\\552\\HW12\\data.txt");
Scanner input = new Scanner((file),encoding);
java.io.File data = new java.io.File("C:\\Users\\ldq2\\Desktop\\552\\HW12\\output.txt");
java.io.PrintWriter output = new java.io.PrintWriter(data);
output.print("dividend ");
output.print("divisor ");
output.print("quotient ");
output.println("remainder ");
String D = input.next();
String d1 = input.next();
while (input.hasNext()) {
try {
int dividend = input.nextInt();
int divisor = input.nextInt();
output.print(dividend + " ");
output.print(divisor + " ");
output.print(quotient(dividend,divisor) + " ");
output.println(remainder(dividend,divisor) + " ");
System.out.println(D + " " + dividend + " " + d1 + " " + divisor);
System.out.println(D + " " + dividend + " " + d1 + " " + divisor + " quotient " +
quotient(dividend,divisor) + " " + "remainder " + remainder(dividend,divisor) + " ");
}
catch(InputMismatchException ex) {
output.println("It must be a integer");
input.nextInt();
continue;
}
catch(ArithmeticException ex) {
output.println("Divisor cannot be zero");
}
}
input.close();
output.close();
}
catch(java.io.FileNotFoundException e) {
System.out.println("File doesn't exists");
System.exit(0);
}
}
public static int quotient(int number1, int number2) {
if (number2 == 0)
throw new ArithmeticException("Divisor cannot be zero");
return number1 / number2;
}
public static int remainder(int number1, int number2) {
if (number2 == 0)
throw new ArithmeticException("Divisor cannot be zero");
return number1 % number2;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/225196.html
標籤:Java EE
上一篇:c語言大佬看一下
