12.3 ArrayIndexOutOfBoundsException异常
- 创建一个由100个随机选取的整数构成的数组。
- 提升用户输入数组的下标,然后显示对应的元素值。如果指定的下标越界,则显示消息“Out of Bounds”。
package Chap12;
import java.util.Scanner;
public class Three {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] arr = new int[100];
for (int i = 0;i < 100;i++){
arr[i] = (int)(Math.random()*1000);
}
System.out.print("查询下标:");
try {
int num = input.nextInt();
System.out.printf("aar[%d]"+" = "+arr[num],num);
}
catch (ArrayIndexOutOfBoundsException ex){
System.out.println("Out of Bounds");
}
}
}
运行结果:
12.2 InputMismatchException异常
编写程序,提示用户读取两个整数,然后显示他们的和。程序应该在输入不正确时提示用户再次读取数值。
package Chap12;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Two {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入两个整数:");
while (true){
try{
int num1 = input.nextInt();
int num2 = input.nextInt();
int res = num1 + num2;
System.out.println(num1+" + "+num2+" = "+res);
System.out.print("请输入两个整数:");
}
catch (InputMismatchException ex){
System.out.print("请输入整数:");
/**吸收输入剩下的换行符*/
input.nextLine();
}
}
}
}
运行结果:
File类
- 命令行传参,简单实现linux ls命令
- 如果是目录,输出文件名、创建时间、文件大小的基础上再加上
<dir>
/**避免问题把包去掉*/
import java.io.File;
public class Test {
public static void main(String[] args) {
java.io.File file = new java.io.File(args[0]);
File[] f = file.listFiles();
for (File a :f){
if (a.isDirectory()){
System.out.println(a.getName()+" "+a.lastModified()+" "+a.length()+"<dir>");
}
else System.out.println(a.getName()+" "+a.lastModified()+" "+a.length());
}
}
}
运行结果:
注意:查询的文件需要与程序在同一目录下
文件输入和输出
简单实现linux cp命令
同上
package CH12;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class CopyFile {
public static void main(String[] args) throws IOException {
File a = new File(args[0]);
File b = new File(args[1]);
//读取数据
Scanner input = new Scanner(a);
//写数据
PrintWriter output = new PrintWriter(b);
//如果已存在同名文件则覆盖
if(b.exists())
b.delete();
b.createNewFile();
while(input.hasNext()){
String line = input.nextLine();
output.println(line);
}
//及时释放被占用资源
input.close();
output.close();
}
}