У меня есть класс measurementFile
, его конструктор размещен ниже. и в классе File_IO_03
, который имеет метод main
, я создаю экземпляр объекта вышеупомянутого класса, но когда я пытаюсь readLine
использовать mf.getbR.readLine
, консоль отображает null.
Обратите внимание: mf
— это объект ранее упомянутого класса, а getbR()
— это метод в этом классе, который должен возвращать инициализированное bufferedReader object
.
Ниже моя попытка прочитать строку из файла, используя bufferedReader
Код:
**File_IO_03**:
File f = new File(path);
MeasurementFile mf = new MeasurementFile(f, MeasurementFile.ENCODING_ISO_8859_1);
if ( (mf.getiS() == null) || (mf.getbR() == null) ) {
System.out.println("either iS or bR is null");
}else {
System.out.println("both iS or bR are initialised"); // successful
System.out.println("path: " + mf.getFile().getAbsolutePath());// displayed
System.out.println("" + mf.getbR().readLine()); // this returns null
System.out.println("total lines in the file: " + mf.getTotalLines());// successful
readLines(mf, 4);
//readLines(mf, 6);
//continueReading(mf);
}
private static void readLines(MeasurementFile mf, int lines) throws IOException {
// TODO Auto-generated method stub
/*InputStream is = new FileInputStream(mf.getFile());
mf.setiS(is);
BufferedReader br = new BufferedReader(new InputStreamReader(mf.getiS()));
mf.setbR(br);*/
String line;
int linecounter = 0;
while ((line = mf.getbR().readLine()) != null) {
System.out.println("current line read: " + line);
if (++linecounter == lines) {
mf.getbR().mark(0);
System.out.println("mark set at linecounter: " + linecounter + "lines: " + lines);
break;
}
}
}
Конструктор класса MeasurementFile:
public MeasurementFile(File file, Charset encoding) throws IOException {
this.setFile(file);
//if (this.myFile.setReadOnly())
this.getFile().setReadable(true);
this.getFile().setWritable(true);
if (this.getiS() == null) {
this.iS = new FileInputStream(this.getFile());
this.setiS(this.iS);
}
if (this.getbR() == null) {
this.bR = new BufferedReader(new InputStreamReader(this.getiS()));
this.setbR(this.bR);
}
this.totalLines = countTotalLines();
if (this.getTotalLines() > 0) {
this.fileToHash();
this.splitFileIntoPages();
}else
System.out.println("@MeasurementFile(): The file is empty can not create more data");
}