java 文件中删除一行(或某个字符)

Python010

java 文件中删除一行(或某个字符),第1张

用“”替换文件中的内容达到删除目的

import java.io.InputStream

import 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")

}

}

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

}