定义Java类Test,实现从键盘输入一个字符串,统计字符串中数字字符的个数,写入到E盘下的1.txt文件中的功能

补全程序题
定义Java类Test,实现从键盘输入一个字符串,统计字符串中数字字符的个数,写入到E盘下的1.txt文件中的功能(需判断1.txt文件是否存在)。程序缺少部分代码,请补充完整后使程序可成功运行。
import java.io.*
public class Test{
public static void main(String[] args) throws IOException{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String s=in.readLine();



  }

```

public static void main(String[] args) throws IOException {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("请输入字符:");
    String s = in.readLine();
    writeFile(count(s));
    
    
}

public static void writeFile(String contentStr) {
    FileWriter fileWriter = null;
    BufferedWriter bw = null;
    try {
        // The path of target file must be existed, target file can not be existed
        File testFile = new File("D:\\1.txt");
        if (!testFile.exists()) {
            testFile.createNewFile();
            System.out.println("文件已创建");
        } else {
            System.out.println("文件已存在");
        }
        fileWriter = new FileWriter(testFile);
        bw = new BufferedWriter(fileWriter);
        bw.write(contentStr);
        bw.append(System.getProperty("line.separator"));
        bw.flush();
    } catch (Exception e) {
        e.toString();
    } finally {
        if (bw != null) {
            try {
                bw.close();
            } catch (Exception e) {
                e.toString();
            }
        }
        if (fileWriter != null) {
            try {
                fileWriter.close();
            } catch (Exception e) {
                e.toString();
            }
        }
    }
}

/** 中文字符 */
private static int chCharacter = 0;
/** 英文字符 */
private static int enCharacter = 0;
/** 空格 */
private static int spaceCharacter = 0;
/** 数字 */
private static int numberCharacter = 0;
/** 其他字符 */
private static int otherCharacter = 0;
//记录中文字符
private static StringBuilder sb1 = new StringBuilder();
//记录英文字符
private static StringBuilder sb2 = new StringBuilder();
//记录数字
private static StringBuilder sb3 = new StringBuilder();
//记录特殊字符
private static StringBuilder sb4 = new StringBuilder();

/***
 * 统计字符串中中文,英文,数字,空格等字符个数
 * 
 * @param str 需要统计的字符串
 */
public static String count(String str) {
    StringBuffer sb = new StringBuffer();
    if (str.equals("") || str == null) {
        System.out.println("字符串为空");
        return "字符串为空";
    }
    for (int i = 0; i < str.length(); i++) {
        char tmp = str.charAt(i);
        if ((tmp >= 'A' && tmp <= 'Z') || (tmp >= 'a' && tmp <= 'z')) {
            enCharacter++;
            sb2.append(tmp + " ");
        } else if ((tmp >= '0') && (tmp <= '9')) {
            numberCharacter++;
            sb3.append(tmp + " ");
        } else if (tmp == ' ') {
            spaceCharacter++;
        } else if (isChinese(tmp)) {
            chCharacter++;
            sb1.append(tmp + " ");
        } else {
            otherCharacter++;
            sb4.append(tmp + " ");
        }
    }
    System.out.println("字符串:" + str + " \r\n");
    System.out.println("中文字符有:" + chCharacter + "个 (" + sb1.toString() + ")");
    System.out.println("英文字符有:" + enCharacter + "个 (" + sb2.toString() + ")");
    System.out.println("数字有:" + numberCharacter + "个 (" + sb3.toString() + ")");
    System.out.println("空格有:" + spaceCharacter + "个");
    System.out.println("其他字符有:" + otherCharacter + "个 (" + sb4.toString() + ")");
    
    sb.append("字符串:" + str + " \r\n");
    sb.append("中文字符有:" + chCharacter + "个 (" + sb1.toString() + ")"+ " \r\n");
    sb.append("英文字符有:" + enCharacter + "个 (" + sb2.toString() + ")"+ " \r\n");
    sb.append("数字有:" + numberCharacter + "个 (" + sb3.toString() + ")"+ " \r\n");
    sb.append("空格有:" + spaceCharacter + "个"+ " \r\n");
    sb.append("其他字符有:" + otherCharacter + "个 (" + sb4.toString() + ")"+ " \r\n");
    return sb.toString();
}

/***
 * 判断字符是否为中文
 * 
 * @param ch 需要判断的字符
 * @return 中文返回true,非中文返回false
 */
private static boolean isChinese(char ch) {
    //获取此字符的UniCodeBlock
    Character.UnicodeBlock ub = Character.UnicodeBlock.of(ch);
    // GENERAL_PUNCTUATION 判断中文的“号 
    // CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号
    if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
            || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
            || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
            || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
            || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
            || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
            || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
        System.out.println(ch + " 是中文");
        //sb1.append(ch+" ");
        return true;
    }
    return false;

}