我從一個文件行逐行提取數據到數據庫中,我找不到正確的方法來標記已經讀入數據庫的行。獲取文件中前一行的偏移量
我有以下的,我使用過的文件中的行遍歷代碼,我試圖驗證
該行有我的標誌,否則我儘量標誌追加到該文件系
List<String> fileLines = new ArrayList<String>();
File logFile = new File("C:\\MyStuff\\SyslogCatchAllCopy.txt");
try {
RandomAccessFile raf = new RandomAccessFile(logFile, "rw");
String line = "";
String doneReadingFlag = "##";
Scanner fileScanner = new Scanner(logFile);
while ((line = raf.readLine()) != null && !line.contains(doneReading)) {
Scanner s = new Scanner(line);
String temp = "";
if (!s.hasNext(doneReadingFlag)) {
fileLines.add(line);
raf.write(doneReadingFlag.getBytes(), (int) raf.getFilePointer(),
doneReadingFlag.getBytes().length);
} else {
System.err.println("Allready Red");
}
}
} catch (FileNotFoundException e) {
System.out.println("File not found" + e);
} catch (IOException e) {
System.out.println("Exception while reading the file ");
}
// return fileLines;
// MoreProccessing(fileLines);
該代碼將標誌附加到下一行,並覆蓋該位置的字符 任何幫助?
我沒有問題,更換字符,問題是替換的字符是下一行也不行我讀當前迭代的while循環 我所需要的根據我的過程,當我讀取到數據庫中的行時,我可以從文件中刪除它或跳過讀取它,以獲得我在循環 –
內讀取的行的偏移量 –
在這種情況下,在*之前取下偏移量*閱讀該行。如果使用此偏移量,則將覆蓋該行的開頭。 (而不是剛剛閱讀的行之後的字符) –