У меня есть несколько файлов в каталоге, которые я намерен пропустить на определенное количество строк.Единственный способ пропустить строки - это получить первое вхождение строки, длина символа которой равна 1. Единственная доступная информация - это то, что строка встречается где-нибудь до строки № 60. Поэтому я написал следующий метод, чтобы попытатьсяпропустить строки перед персонажем.Но я получаю тот же файл, что и исходный файл:
public static void editSplitFiles(File sourceDir) {
FilenameFilter only = new OnlyExt("RPT");
log.debug("Editing Split Files........");
String[] filenames = sourceDir.list(only);
try {
for (int k = 0; k < filenames.length; k++) {
FileInputStream fs = new FileInputStream(sourceDir.getAbsolutePath() + System.getProperty("file.separator") + filenames[k]);
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
FileOutputStream fos = new FileOutputStream(sourceDir.getAbsolutePath() + System.getProperty("file.separator") + filenames[k] + ".LST");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
String strLine;
int num = 0;
int splitLine = 0;
while ((strLine = br.readLine()) != null) {
num++;
if (strLine.length() == 1) {
splitLine = num;
}
bw.write(strLine);
bw.newLine();
bw.flush();
}
if (splitLine < 60) {
log.debug("File Name" + filenames[k] + "Line Number - " + splitLine);//This gives me the correct line number where the character is for each file.
br.readLine();
}
fs.close();
br.close();
fos.close();
bw.close();
}
} catch (Exception asd) {
log.debug(asd.getMessage());
}
}
Я не уверен, что я делаю неправильно, но похоже, что файл записывается, прежде чем я пропущу.Как мне это сделать?
РЕДАКТИРОВАТЬ Файлы выглядят так: