• 欢迎光临~

020.完成的功能点: * ①文件不存在或者 * ②不是txt结尾的文件 * ③txt的文件格式不对 * ④球员名字不符合要求

开发技术 开发技术 2022-05-26 次浏览
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:IDEA2022-5-23-WordCulpwordculp.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("文件不存在");
            }
        }
    }
}

 

喜欢 (0)