Java:我的文件输入/输出出现一些问题(br 无法解决)

标签 java bufferedreader bufferedwriter

我对 Java 比较陌生,所以我只是想通过简单的 IO 以及异常处理进行一些练习。我的程序非常基本 - 我只想从文件中读取一个数字,然后将其从摄氏温度转换为华氏温度,并将其输出到另一个文件中。我收到的错误是:“br/bw 无法解析”和“br/bw 无法解析为变量”。似乎是范围问题,但我不确定。我这样说是因为它们都是在我创建 BufferedReader/BufferedWriter 对象/变量之后发生的。

感谢您的浏览。

import java.io.*;
import java.util.*;

public class InputOutputTest {

    public static void main (String [] args){

        String dataIn = "input.txt";
        String dataOut = "output.txt";

        try{
            BufferedReader br = new BufferedReader( new FileReader( dataIn ) );
        }

        catch(FileNotFoundException e){
            System.out.println("Cannot open " + dataIn);

        }

        try{
            BufferedWriter bw = new BufferedWriter(new FileWriter(dataOut));
        }

        catch(IOException e){
            System.out.println("Cannot open " + dataOut);
        }

        Scanner fileIn = new Scanner( br );

        try{
            while(fileIn.hasNext()){

                int cTemp = fileIn.nextInt();
                int fTemp = cTemp * (9/5) + 32;

                bw.write("The temperature " + cTemp + " in fahrenheit is " + fTemp);
            }
        }

        catch(IOException e){
            System.out.println("Error, problem writing to file.");
        }

        try{
            br.close();
            bw.close();
        }
        catch(IOException e){System.out.println("Error: Problem closing input or output file.");}
    }
}

最佳答案

由于您已在 try block 内声明了 br 变量,因此其范围仅限于该 block 。

要增加 br 的范围,请在 try block 之前声明它。

BufferedReader br = null;
try{
    br = new BufferedReader( new FileReader( dataIn ) );
}

您必须将其初始化为 null,这样您才能确保在第一次引用它之前它始终被初始化为某个值(甚至是 null)。

future 的引用在使用它之前需要检查它是否为null

关于Java:我的文件输入/输出出现一些问题(br 无法解决),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22671893/

相关文章:

java - 在java中同时初始化多个列表

java - 缓冲阅读器读取特定行和文本

java - BufferedReader 在到达空行时停止读取

java - 我应该如何检查 BufferedWriter 是否已经关闭?

java - 使用 BufferedWriter/Reader 添加行数

java - BufferedWriter 将随机字母写入文件(Java)

java - spring servlet url-pattern 映射不适用于星号

java - 在 ovverriden 方法中使用多态泛型

java - 如何按名称实例化参数化类型类

java - 如何从文件中读取 N 行?