用户自行定义一个异常,编程创建并抛出某个异常类的实例,运行该程序并观察 执行结果。例如:用户密码的合法化验证,要求密码由4 到6个数字组成,若长度不 落在这个范围或不是由数字组成,抛出自己的异常。
实验结果参考如下:
import java.io.*;
import java.util.Scanner;
class Passwordh extends Exception{
public Passwordh(String m) {
super(m);
}
}
public class Mima{
public String passwordhx (String Password)throws Passwordh {
try {
if(Password.length()<4||Password.length()>6) {
throw new Passwordh("密码必须由4到六位数字组成!");
}
}
catch (NumberFormatException e) {
System.out.println(e.toString());
}
try {
if(!Password.matches("\\d+"))
{
Passwordh e;
e=new Passwordh("密码必须由数字组成!");
throw e;
}
} catch (NumberFormatException e) {
System.out.println(e.toString());
}
return Password;
}
public static void main(String args[]) {
try {
Mima test;
test=new Mima();
Scanner scanner=new Scanner(System.in);
System.out.println("请输入密码:");
String str=scanner.nextLine();
String a=test.passwordhx(str);
System.out.println("您的密码为:"+a);
}
catch (Passwordh e) {
e.printStackTrace();
}
}
}
编写程序,接受用户输入的5个浮点数据和一个文件目录名,将这5个数据保存 在文件中,再从该文件中读取出来并且进行从小到大排序,然后再一次追加保存到文件中。
实验结果参考如下:
import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class Text {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入5个浮点数:");
float[] a=new float[5];
for(int i=0;i<5;i++) {
a[i]=s.nextFloat();
}
String str;
System.out.println("请输入文件名:");
str=s.next();
File f=new File(str);
try {
f.createNewFile();
}
catch(IOException e) {
e.printStackTrace();
}
try {
FileWriter fW=new FileWriter(f);
for(int i=0;i<5;i++) {
fW.write(String.valueOf(a[i])+"\r\n");
}
fW.close();
}
catch(IOException e) {
e.printStackTrace();
}
try {
FileReader fr=new FileReader(f);
BufferedReader br=new BufferedReader(fr);
float[] b=new float[5];
for(int i=0;i<5;i++) {
b[i]=Float.parseFloat(br.readLine());
}
Arrays.sort(b);
try {
FileWriter fw=new FileWriter(f,true);
for(int i=0;i<5;i++) {
fw.write(String.valueOf(b[i])+"\r\n");
}
fw.close();
}
catch(IOException e) {
e.printStackTrace();
}
}
catch(FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
编写一个Java程序,在当前文件夹中新建一个文件RandomFile.txt,往该文件中写入数据abcdefghijklmnopqrstuvwxyz,提示用户从键盘输入一个0~25的整数,根据用户输入的整数,从文件中读出相应位置的字符并显示,使程序运行结果如下。
import java.io.*;
import java.util.Scanner;
public class Shu {
public static void main(String[] args) {
File f=new File("D:\\RandomFile.txt");
String str="abcdefghijklmnopqrstuvwxyz";
int a=-1;
Scanner reader=new Scanner(System.in);
System.out.println("从键盘上输入一个0~25的整数:");
a=reader.nextInt();
try {
RandomAccessFile in=new RandomAccessFile(f, "rw");
in.seek(in.length());
in.writeBytes(str);
in.seek(a);
char c=(char)in.read();
in.close();
System.out.println("RandomFile.txt文件中第"+a+"个字符是"+c);
}
catch(IOException e) {
System.out.println(e);
}
}
}