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("文件不存在");
}
}
}
}