BufferedReader有时是空的

时间:2015-12-09 20:48:46

标签: resources bufferedreader

我有Loader类,我从资源中将txt文件加载到BufferedReader并返回此字段。我使用这种方法,但它的行为非常奇怪(对我而言)。当我不放 String str = bufferReader.readLine();之后 bufferReader = new BufferedReader(fileReader); (在Loader类中)比另一个类中的bufferReader为空,readLine()返回null。当我在Loader类中编写那段代码时,我可以从txt读取每一行,除了1.在Loader类中读取的一行。另外,如果我最后没有输入,我就无法读到最后一行。

public BufferedReader loadFromFileToBufferReader(String fileName) {
        ClassLoader classLoader = getClass().getClassLoader();
        System.out.print(getClass().getClassLoader().getResource("resources/" + fileName));
        File file = new File(classLoader.getResource("resources/" + fileName).getFile());
        BufferedReader bufferReader = null;
        try (FileReader fileReader = new FileReader(file)) {
            bufferReader = new BufferedReader(fileReader);
            String str = bufferReader.readLine();

        } catch (IOException e) {
            System.err.println("Something went terribly wrong with file reading");
        }
        return bufferReader;
    }

和用法:

public Database() {
        productsInDatabse = new ArrayList<>();
        codesList = new ArrayList<>();
        loader = new LoadFromFile();
        BufferedReader output = loader.loadFromFileToBufferReader("database.txt");
        Product product;
        String line;
        String[] array;
        try {

            line = output.readLine();

            while (line != null) {

1 个答案:

答案 0 :(得分:0)

你应该在这里粘贴你的代码,因为很难在没有看到100%的代码的情况下推断出所有可能的原因但是我猜你从同一时间从多个来源打开同一个文件而没有关闭它一?可能只是数以百万计的小事,只是告诉你同样的错误是如何发生在我身上的。