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 展开
原来的txt内容是12 -156 35 -26 369 598 12 55
存到新的txt文本的内容为:12 35 369 12 展开
2个回答
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");
}
展开全部
这里涉及到读写文件,为读、写两个文件分别生成输入流 和 输出流
InputStream is = new FileInputStream(f);
OutputStream os = new FileOutputStream(f);
首先用输入流获得 读文件的内容,你可以用Scanner去解析这个输入流,或者用
BufferedReader br = new BufferedReader(new FileReader(filename));
去读取文件内容,然后split到一个数组中。
然后 你再拼接一段 要写的字符串 这个很简单吧 你只要遍历数组,把自己想要的数字用 int[i] + " " 这样拼接起来就行了
然后再用输出流写入文件就行了
InputStream is = new FileInputStream(f);
OutputStream os = new FileOutputStream(f);
首先用输入流获得 读文件的内容,你可以用Scanner去解析这个输入流,或者用
BufferedReader br = new BufferedReader(new FileReader(filename));
去读取文件内容,然后split到一个数组中。
然后 你再拼接一段 要写的字符串 这个很简单吧 你只要遍历数组,把自己想要的数字用 int[i] + " " 这样拼接起来就行了
然后再用输出流写入文件就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询