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()
}
用“”替换文件中的内容达到删除目的
import java.io.InputStreamimport java.io.BufferedReader
import java.io.BufferedWriter
import java.io.FileReader
import java.io.FileWriter
import java.util.Scanner
import java.io.FileNotFoundException
import java.io.IOException
public class zifutihuan
{
protected static void rep(String ch)
{
BufferedReader bis = null
FileWriter bos = null
String s = null
try
{
bis = new BufferedReader(new FileReader("1.txt"))
bos = new FileWriter("2.txt")
while(null != (s = bis.readLine()))
{
s = s.replaceAll(ch,"")
System.out.println(s)
s= s+"\r\n"
bos.write(s)
}
bos.close()
bis.close()
s = null
}
catch(FileNotFoundException e)
{
System.out.println("未找到文件\n")
}
catch(IOException ee)
{
System.out.println("aaa")
}
}
public static void main(String args[])
{
rep("123")
}
}
你可以用StreamReader一行一行地读,直到读完,你把读到的每一行加到ArrayList对象中存放,然后遍历这个ArrayList对象,对每一行进行判断处理,不要的直接删除,然后再用StreamWriter把ArrayList对象中的数据重写到文件中,原来的文件覆盖掉。