关于Java文件删除某一行(Java高手进)

2025-04-02 22:26:59
推荐回答(4个)
回答1:

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();
}

回答2:

只定义一个字符串,读一行就执行一行,下一行还用这个字符串读。
读完了再删除文本文件。

回答3:

使用readLine()读取文本中数据,得到一个流,将这个流存入一个数组中,再使用FOR循环输出并执行数组中的各个值,再将数据存入数据库;不过,楼主是否考虑过,几百万行SQL语句存入数据库中后得到的数据库文件大小其实并不比文本存储SQL语句的文件小多少的,而且其中像这种需要存储庞大数据量的,你必须要先定义数组的大小

回答4:

加根内存条,用查询分析器解析。