## Why is this an issue?

The `Reader.read()` and the `BufferedReader.readLine()` are used for reading data from a data source. The return value of these methods is the data read from the data source, or `null` when the end of the data source is reached. If the return value is ignored, the data read from the source is thrown away and may indicate a bug.

This rule raises an issue when the return values of `Reader.read()` and `BufferedReader.readLine()` and their subclasses are ignored or merely null-checked.

### Noncompliant code example

    public void doSomethingWithFile(String fileName) {
      try(BufferedReader buffReader = new BufferedReader(new FileReader(fileName))) {
        while (buffReader.readLine() != null) { // Noncompliant
          // ...
        }
      } catch (IOException e) {
        // ...
      }
    }

### Compliant solution

    public void doSomethingWithFile(String fileName) {
      try(BufferedReader buffReader = new BufferedReader(new FileReader(fileName))) {
        String line = null;
        while ((line = buffReader.readLine()) != null) {
          // ...
        }
      } catch (IOException e) {
        // ...
      }
    }

## Resources

- Oracle SDK 20 - Reader.read()
- Oracle SDK 20 - BufferedReader.readLine()