Java 在我的文本文件中放置随机符号而不是整数

Java putting random symbols in my text file instead of integers

我有一个程序应该将字符串和随机整数放入文本文件中。出于某种原因,我的程序将随机符号而不是整数放入文件中。有人知道为什么会这样吗?

文件当前的样子:

Test
賬
Test2
∗

文件应该是什么样子:

Test
36076
Test2
74263

Class 获取字符串和随机数:

public void newList() {

    boolean newCode = false;

    while (!newCode) {

        System.out.println("NEW LIST");
        System.out.print("List Name: ");

        @SuppressWarnings("resource")
        Scanner scanner = new Scanner(System.in);
        listName = scanner.next();

        System.out.println("The list name has been saved!");
        System.out.println();

        Random generateCode = new Random();
        setGeneratedCode(generateCode.nextInt((99999 - 10000) + 1) + 10000);

        File f = new File(generatedCode + ".txt");
        if (f.exists()) {
            newCode = false;
        }
        if (!f.exists()) {
            newCode = true;
        }
    }

    ListsWriter listsWriterObject = new ListsWriter();
    listsWriterObject.listsWriter(listName, generatedCode);
}

Class 将字符串和数字写入文件:

public void listsWriter(String listName, int generatedCode) {
    BufferedWriter bw = null;

    File lists = new File("lists.txt");

    try{
        FileWriter fw = new FileWriter(lists, true);
        bw = new BufferedWriter(fw);

        bw.write(listName);
        bw.newLine();
        bw.write(generatedCode);
        bw.newLine();
        bw.close();

    }catch(IOException ex){
            ex.printStackTrace();
    }


    FileCreator fileCreatorObject = new FileCreator();
    fileCreatorObject.fileCreator(generatedCode);
}

你使用 OutputStreamWriter

的 write(int c) 方法

write(int c)

Writes a single character.

您需要将其转换为 String 并使用:

bw.write(String.valueOf(generatedCode))

BufferedWriter的write方法写一个字符: https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html

您必须将您的整数转换为字符串:

bw.write(Integer.toString(generatedCode));