Java BufferedWriter将0作为\00写入文本文件

Java BufferedWriter将0作为\00写入文本文件,java,io,bufferedwriter,Java,Io,Bufferedwriter,我有点像 int userChoice; System.out.println("Enter your choice"); userChoice = userInput.nextInt(); //Scanner stuffs written already 假设用户选择0 当我尝试使用BufferedWriter并写入文本文件时 我得到\00正在写入文件,而不是0 下面是我的代码 try { BufferedWriter output = new BufferedWriter(new

我有点像

int userChoice;
System.out.println("Enter your choice");
userChoice = userInput.nextInt(); //Scanner stuffs written already
假设用户选择0

当我尝试使用BufferedWriter并写入文本文件时

我得到\00正在写入文件,而不是0

下面是我的代码

try {

    BufferedWriter output = new BufferedWriter(new OutputStreamWriter(
            new FileOutputStream("salt.txt", true)));
    output.write(userChoice);
    output.close();
} catch (IOException e) {
    e.printStackTrace();
}

那么,如何使它将“0”写入文件而不是“\00”

我可能更喜欢使用,但您应该能够执行类似的操作-

// output.write(userChoice);
output.write(String.valueOf(userChoice));

我可能更喜欢使用a,但您应该能够这样做-

// output.write(userChoice);
output.write(String.valueOf(userChoice));
当您使用write(int c)时,它将整数解释为字符(类似于ASCII值)。编写userChoice时,请尝试将其转换为字符串

output.write(Integer.toString(userChoice));
output.write("" + userChoice);
当您使用write(int c)时,它将整数解释为字符(类似于ASCII值)。编写userChoice时,请尝试将其转换为字符串

output.write(Integer.toString(userChoice));
output.write("" + userChoice);

OutputStreamWriter有一个write(int)方法,但会将该值解释为字符代码。如果要使其可打印,请首先将int值转换为字符串或类似的可打印类型。OutputStreamWriter有一个write(int)方法,但会将该值解释为字符代码。如果要使其可打印,请首先将int值转换为字符串或类似的可打印类型。