JAVA如何删除文本文档里的某一行?

Python015

JAVA如何删除文本文档里的某一行?,第1张

你可以先定义一个InputStreamReader读取文本文件内容,然后再用一个LineNumberReader获取刚才InputStreamReader的对象,LineNumberReader里有个方法readLine()是用来一行一行的顺序读取字符,然后用一个判断语句来判断你想修改的行,最后删除或修改就可以了 。

.txt"),"GBK"))String cwhile ((c=input.readLine())!=null) {ll.add(c)System.out.println(c)}input.close()

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()}

while(!(content=bl.readLine()).equals("#")){

bw1.write(content)

bw1.newLine()

}

//要在这里删除#,完全没必要,这样会浪费很多的资源,因为你还要重新的构造队path所指的文件的i/o,在修改里面的内容

bw1.flush()

bw1.close()

Java API中是没有这样的函数可以直接一调用的。但java.io.LineNumberReader类提供了定位行号的方法,或许可以有用。这是我的方法,试试看:

try {

//从文件中读取,LineNumberReader提供方法setLineNumber(int lineNumber)定位当前行号

LineNumberReader reader = new LineNumberReader(new FileReader("data.sql"))

BufferedWriter writer = new BufferedWriter(new FileWriter("temp.txt"))

String sql

while( (sql=reader.readLine())!=null ){

//执行sql语句,这里也可将本行的语句sql保存到另一个temp.txt文件中,如果本行是被删除的语句,就不保存了,

//执行完后删除data.sql,保存temp.txt就行了,

//这样可以保证data.sql是里面的几百万条记录不被读取到内存

writer.write(sql)//在这里可以判断本行是否要被删除,如要保存就将其保存至temp.txt

}

reader.close()

writer.close()

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}