public void changeFile(String pm_sFileName) { File file = new File(pm_sFileName); FileReader rd = new FileReader(file); BufferedReader br = new BufferedReader(rd);
File outFile = new File(pm_sFileName+".tmp"); FileWriter b = new FileWriter(file,true); try { String rowStr; while((rowStr = br.readLine())!=null) { long imsi = Integer.parseInt(rowStr); // change to UserId long userId = changeToUserId(imsi); b.write(String.valueOf(userId)); b.write("\r\n"); } b.flush(); //rename to the original File file.delete(); outFile.renameTo(new File(pm_sFileName)); } catch (FileNotFoundException e) { System.out.println("文件未找到!"); e.printStackTrace(); } catch (IOException e) { System.out.println("IO异常,无法写文件!"); e.printStackTrace(); } finally { b.close(); rd.close(); } }
File file = new File(pm_sFileName); FileReader rd = new FileReader(file); BufferedReader br = new BufferedReader(rd);File outFile = new File(pm_sFileName+".tmp"); FileWriter b = new FileWriter(file,true); try { String rowStr; while((rowStr = br.readLine())!=null) { b.writeln(rowStr.replace("","")) }
看看我这个: BufferedReader bin = new BufferedReader(new FileReader("a.txt")); StringBuffer sb = new StringBuffer(); String s = bin.readLine(); while(s!=null) { s = s.replaceAll("[\\d]{11,12}","用户ID号");//模式匹配 sb.append(s+"\n"); s = bin.readLine(); } System.out.println(sb.toString());
之后: new File("a.txt").delete(); BufferedWriter bout = new BufferedWriter(new FileWriter("a.txt"));// bout.write(sb.toString());//不然就读一行就写一行
BufferedReader bin = new BufferedReader(new FileReader("a.txt")); StringBuffer sb = new StringBuffer(); String s = bin.readLine(); while(s!=null) { s = s.replaceAll("[\\d]{11,12}","用户ID号"); sb.append(s+"\n"); s = bin.readLine(); }
将文件读入到内存,每行作为一个String,在读取过程中对每行进行替换操作,然后将String放在ArrayList中,所有行处理完毕后,在将ArrayList中的内容写入文件
{
File file = new File(pm_sFileName);
FileReader rd = new FileReader(file);
BufferedReader br = new BufferedReader(rd);
File outFile = new File(pm_sFileName+".tmp");
FileWriter b = new FileWriter(file,true);
try
{
String rowStr;
while((rowStr = br.readLine())!=null)
{
long imsi = Integer.parseInt(rowStr);
// change to UserId
long userId = changeToUserId(imsi);
b.write(String.valueOf(userId));
b.write("\r\n");
}
b.flush();
//rename to the original File
file.delete();
outFile.renameTo(new File(pm_sFileName));
}
catch (FileNotFoundException e)
{
System.out.println("文件未找到!");
e.printStackTrace();
}
catch (IOException e)
{
System.out.println("IO异常,无法写文件!");
e.printStackTrace();
}
finally
{
b.close();
rd.close();
}
}
FileReader rd = new FileReader(file);
BufferedReader br = new BufferedReader(rd);File outFile = new File(pm_sFileName+".tmp");
FileWriter b = new FileWriter(file,true);
try
{
String rowStr;
while((rowStr = br.readLine())!=null)
{
b.writeln(rowStr.replace("",""))
}
1:用ArrayList方法来做不大好,因为也许这个文本文件也许很大(关于批量话单的)。所以如果都先存入ArrayList,系统性能就下降太快了!
2:读取文本文件后直接写入该文本文件的方法不好,一旦处理过程发现一个手机号错误,需要回滚,就没办法啦。
然后,删除A,重命名B。
有没有比较完整的?
就是读文本文件中的一行,然后提取出这一行内容中的手机号,将其改为用户id号。最后再写入新文本文件中!接着读下一行,直到文件读完!然后把原来文件删除,新文件名改成原来文件名。呵呵
BufferedReader bin = new BufferedReader(new FileReader("a.txt"));
StringBuffer sb = new StringBuffer();
String s = bin.readLine();
while(s!=null) {
s = s.replaceAll("[\\d]{11,12}","用户ID号");//模式匹配
sb.append(s+"\n");
s = bin.readLine();
}
System.out.println(sb.toString());
new File("a.txt").delete();
BufferedWriter bout = new BufferedWriter(new FileWriter("a.txt"));//
bout.write(sb.toString());//不然就读一行就写一行
StringBuffer sb = new StringBuffer();
String s = bin.readLine();
while(s!=null) {
s = s.replaceAll("[\\d]{11,12}","用户ID号");
sb.append(s+"\n");
s = bin.readLine();
}
这是一个上传文件的流程(B/S):
1:页面选择要上传的文本文件
2:在上传过程中,把文本文件里的关于手机号的那部分取出来,跟其它接口报文做一次交互,得到user_id,然后把这个user_id替换原来手机号。
3:文件传到相应的服务器上