JAVA读取txt文本内容存入新的txt文本;

从txt问题读取数据,txt文本的内容是有规律的,如:12-15635-263695981255;我想提取每间隔一个数据存入到新的txt文本,保留数据之间的空格格式。用j... 从txt 问题读取数据,txt文本的内容是有规律的,如:12 -156 35 -26 369 598 12 55;我想提取每间隔一个数据存入到新的txt文本,保留数据之间的空格格式。用java如何实现。新手。
原来的txt内容是12 -156 35 -26 369 598 12 55
存到新的txt文本的内容为:12 35 369 12
展开
 我来答
匿名用户
2017-01-24
展开全部


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader(new File("D:\\123.txt"));//原始文件
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter(new File("D:\\456.txt"));//新的文件
String str = null;
while ((str = br.readLine()) != null) {//读取一行
str = str.replaceAll("-", " ");//这里写你转换的算法
fw.write(str + "\n");//把转换后的字符串输出到新的文件
}
br.close();
fr.close();
fw.flush();
fw.close();
}
}
更多追问追答
追问
我是取数间隔数据。
追答

那就改一下这个算法(用的是正则表达式,不懂可以略过)

(我问一个问题,就是这个获取隔一个数据是相对于那一行还是整个文本文件)

把这里改成

String str = null;
Pattern p = Pattern.compile("(\\d*)[^\\d]*(\\d*)[^\\d]*");//加了这句
String res =null;//加了这句
while ((str = br.readLine()) != null) {
res = "";//加了这句
Matcher m = p.matcher(str);//加了这句
while (m.find()) {//加了这句
res += m.group(1) + " ";//加了这句
}//加了这句
fw.write(res + "\n");
}


miaoch
2017-01-24 · TA获得超过1204个赞
知道小有建树答主
回答量:814
采纳率:83%
帮助的人:335万
展开全部
这里涉及到读写文件,为读、写两个文件分别生成输入流 和 输出流
InputStream is = new FileInputStream(f);
OutputStream os = new FileOutputStream(f);
首先用输入流获得 读文件的内容,你可以用Scanner去解析这个输入流,或者用
BufferedReader br = new BufferedReader(new FileReader(filename));
去读取文件内容,然后split到一个数组中。
然后 你再拼接一段 要写的字符串 这个很简单吧 你只要遍历数组,把自己想要的数字用 int[i] + " " 这样拼接起来就行了
然后再用输出流写入文件就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式