Question about BufferedWriter output.

Asked 2 years ago, Updated 2 years ago, 23 views

Enter 103 100 and

If you print out System.out.println, you get 15 When output to BufferedWriter, strange characters are output.

What's the reason?

Thank you!

package math;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Scanner;
import java.util.StringTokenizer;

public class CodeRunner{
    public static void main(String[] args) throws IOException {


        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String s = br.readLine();
        StringTokenizer st = new StringTokenizer(s);

        double A = Double.parseDouble(st.nextToken());
        double B = Double.parseDouble(st.nextToken());
        double V = Double.parseDouble(st.nextToken());

        int day = 0;
        double length = 0;

        length = A-B;
        day = (int)Math.ceil(V/length);

        System.out.println(day);
        bw.write(day);
        bw.flush();





    }
}

java

2022-09-21 14:02

1 Answers

Convert day to String type and write it.

bw.write(String.valueOf(day));

The reason is that reader/writer is a class that deals with strings.

If you put an integer value here, it's encoded in ascii type by default.

65 is A, so if you want to check it, you can check the output of A with bw.write(65);.


2022-09-21 14:02

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.