020.完成的功能点: * ①文件不存在或者 * ②不是txt结尾的文件 * ③txt的文件格式不对 * ④球员名字不符合要求
package com.qx.file; import com.sun.org.apache.bcel.internal.generic.NEW; import java.io.*; import java.util.ArrayList; import java.util.Scanner; /** * 完成的功能点: * ①文件不存在或者 * ②不是txt结尾的文件 * ③txt的文件格式不对 * ④球员名字不符合要求 * D:\IDEA\2022-5-23-WordCulp\wordculp.txt */ public class Test { public static void main(String[] args) throws IOException { System.out.print("请输入文件名:"); Scanner input = new Scanner(System.in); String path = input.nextLine(); File file = new File(path); if (file.isDirectory()) { System.out.println("这是一个文件夹,请输入带文件名的文件路径!"); } else { if (file.exists()) { System.out.println("目标" + file.getName() + "存在"); String toLowerCase = path.toLowerCase();//将路径中所有字母都转换成小写 int i = toLowerCase.lastIndexOf(".");//返回指定字符在此字符串中最后一次出现处的索引 if (i > 0) { String txtName = path.substring(i + 1); if (txtName.equals("txt")) { System.out.println("后缀是txt"); //todo 判断文件格式这个没考虑好!!!现有的判断方式存在错误!!! //判断文件格式对不对 FileInputStream fis = new FileInputStream(path); int dataFis; StringBuffer dataStringBuffer = new StringBuffer(); while ((dataFis = fis.read()) != -1) { dataStringBuffer.append((char) dataFis); } //这里的data是转换后txt中的内容 String data = dataStringBuffer.toString(); System.out.println("读取到的结果为:" + data); fis.close(); /** * 1.获取空格第一次出现的位置indexSpace * 2.获取逗号第一次出现的位置indexComma * 3.如果indexSpace<indexComma说明逗号的位置在空格的后面 */ ArrayList<String> dataStringArray = new ArrayList<>(); ArrayList<Integer> numberStringArray = new ArrayList<>(); int indexSpace = data.indexOf(" "); int indexComma = data.indexOf(","); //新的判断文件格式的方式,如果不是4就代表不是四个队伍 String[] array = data.split(",");//这里获取到的是4个String字符串 if (indexComma != -1 && indexSpace != -1 && indexComma > indexSpace && array.length == 4) { //System.out.println(txtName + "的文件格式正确"); for (int j = 0; j < array.length; j++) { dataStringArray.add(array[j].split(" ")[1]); dataStringArray.add(array[j].split(" ")[2]); numberStringArray.add(Integer.parseInt(array[j].split(" ")[3])); } //// TODO: 2022/5/26 球队排名只能是1,2,3,4 for (int m = 0; m < numberStringArray.size(); m++) { System.out.println(numberStringArray.get(m)); } System.out.print("球员的名字分别是:"); for (int k = 0; k < dataStringArray.size(); k++) { System.out.print(dataStringArray.get(k)+" "); } //// TODO: 2022/5/26 判断球员的名字是否符合要求,要求每个球员的名字必须有俩个字母 System.out.print("球员名字的判断结果为:"); for (int v = 0; v < dataStringArray.size(); v++) { } } else { System.out.println(txtName + "的文件格式不正确"); } } else { System.out.println("后缀不是txt"); } } } else { System.out.println("文件不存在"); } } } }