File
最初からすべての行を読み取り、 List<String>
. 次に、インデックスを削除して、すべての行を書き戻すことができます。おそらく、次のようになります。
public void removeLine(final File file, final int lineIndex) throws IOException{
final List<String> lines = new LinkedList<>();
final Scanner reader = new Scanner(new FileInputStream(file), "UTF-8");
while(reader.hasNextLine())
lines.add(reader.nextLine());
reader.close();
assert lineIndex >= 0 && lineIndex <= lines.size() - 1;
lines.remove(lineIndex);
final BufferedWriter writer = new BufferedWriter(new FileWriter(file, false));
for(final String line : lines)
writer.write(line);
writer.flush();
writer.close();
}
使用法:
public static void main(String args[]) throws IOException{
final File file = ...;
removeLine(file, 2);
}
上記のコードは 3 行目を削除します。