需求很简单啊,就是读文本文件中的一行,然后提取出这一行内容中的手机号,将其改为用户id号。最后再写入该文本文件中!接着读下一行,直到文件读完!
谢谢大家帮忙啦!明天这个时候结帖!
谢谢大家帮忙啦!明天这个时候结帖!
解决方案 »
- 标题一定要长...长...长...长...长...长...长...长...长...长...长...长...长...长...长...长...长...长
- 如何成为一名优秀的软件工程师
- 我是自学者
- 为什么有时安装微软的office后,JVM的调用字符集就出错了
- 在打印JTextPane时,如何得到JTextPane一共可打印多少页?
- 求救:由于Comm通讯的底层接口获取的int型整数数据是C++写的,现在要用java调用C++的接口int型出现溢出,即怎么获取大于2147483648(c++可
- 各位JAVA前辈,小第刚刚开始学习JAVA,请问如何才能迅速上手阿,清赐教!
- 使用JBUILDER做的程序如何脱离开发环境运行,有没有可执行文件?
- 请问如果我想调试如下程序,在JB中应该如何操作?(立结)
- 使用jdbc:odbc形式不能正确连接到oracle数据库吗
- 排序问题: 房地产项目中的一段代码, 室号按从高层到低层排列, 请问如何实现
- 按钮上的图片不跟着走
将文件读入到内存,每行作为一个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:文件传到相应的服务器上