需求:输入文件名,必须有扩展名,扩展名不限,产生文件,得到完整的文件名后可以找到文件的扩展名并打印出来。最后选择是否删除刚才创建的文件,Y删除,N取消。
已知的bug有两个:1,输入文件名没有扩展名时(用是否有".”判断),报错。2、提示是否删除文件时出错。
//输入文件名,必须有扩展名,扩展名不限,产生文件,得到完整的文件名后可以找到文件的扩展名并打印出来。最后选择是否删除刚才创建的文件,Y删除,N取消。
public class Test8 {
public static void main(String[] args) throws Exception {
String filename = createFile();
if(filename==null)
return;
String fileexname = getExName(filename);
System.out.println(filename+"的扩展名为:"+fileexname);
delFile(filename);
}
//创建文件
public static String createFile() throws Exception{
String str = null;
String filename = inputFileName();
File file = new File(filename);
if(file.exists()) {
System.out.println("创建文件" + filename + "失败,目标文件已存在!");
return str;
}
if (file.createNewFile()) {
System.out.println("创建文件" + filename + "成功!");
return filename;
}else{
System.out.println("创建文件" + filename + "失败!");
return str;
}
}
//删除文件
public static void delFile(String pathname) throws Exception{
File file = new File(pathname);
System.out.println("是否要删除文件"+pathname+"?请输入Y(确认删除)或者N(取消删除):");
String str = inputStr();
if (str.equals("Y")||str.equals("y")) {
file.delete();
}else{
System.out.println("已经取消删除操作。");
}
}
//定义函数接受输入的字符串并返回输入的字符串
public static String inputFileName() throws Exception{
System.out.println("请输入文件名,必须包含扩展名:");
String str = inputStr();
if(!(str.contains(".")))
inputFileName();
return str;
}
//获取键盘输入的内容
public static String inputStr() throws Exception{
Scanner sc = new Scanner(System.in);
String str = sc.next();
sc.close();
return str;
}
//获得文件的扩展名
public static String getExName(String str){
String[] mystr=str.split("\\.");
return mystr[mystr.length-1];
}
}
------解决方案--------------------
public static String inputStr() throws Exception {
Scanner sc = new Scanner(System.in);
String str = null;
if(sc.hasNext()){
str = sc.next();
}
System.out.println("str : " + str);
return str;
}