java读取文本文件,每行一条记录,现在要读出这些字段进行加工处理,在某个位置添加还要字段进去
答案:3 悬赏:40
解决时间 2021-02-19 22:04
- 提问者网友:小姐请专情
- 2021-02-19 01:09
java读取文本文件,每行一条记录,每条记录之间的字段按逗号分割,现在要读出这些字段,并且还要在每条记录的某个位置添加字段进去,处理完之后最后形成一个大的字符串,每条记录仍是一行,字段直接逗号分割。
最佳答案
- 二级知识专家网友:啵啵桃汀
- 2021-02-19 01:26
public void process(File iFile,File oFile) throws Exception{
BufferedReader reader=new BufferedReader(new FileReader(iFile));
BufferedWriter writer=new BufferedWriter(new FileWriter(oFile));
String line=null;
while((line=reader.readLine())!=null){
// line 就是你拿到的每一行
String[] arr = line.split(","); //用逗号分割,得到每一行所有的字段数组
// 然后在处理新增字段,这个也好搞
StringBuilder sb = new StringBuilder();
for(int i = 0; i < arr.length; i++) { //遍历所有字段
sb.append(arr[i]).append(","); //新的记录,字段用逗号分隔
if(i == [要插入位置的索引]) {
sb.append("我是新插的内容").append(",");
}
}
// 把最后的一个分割逗号删掉即可
。。。。。。
再写入到文件中 xxx (省略)
}
writer.flush();
writer.close();
reader.close();
}
全部回答
- 1楼网友:duile
- 2021-02-19 02:53
给你一个处理方法的例子吧,实际的处理规则你自己修改下:
====================================================
public void process(File iFile,File oFile) throws Exception{
BufferedReader reader=new BufferedReader(new FileReader(iFile));
BufferedWriter writer=new BufferedWriter(new FileWriter(oFile));
String line=null;
while((line=reader.readLine())!=null){
//这里就写你的对每一行数据line的处理逻辑,注意,line里面没有回车换行符号了
writer.write(line);
writer.write("\n");
}
writer.flush();
writer.close();
reader.close();
}
- 2楼网友:啵啵桃汀
- 2021-02-19 02:21
楼主的意思是:
文件每行要320bit,每行的内容是"1""0"组合的字符.是这样么?
如果我对你的意思理解正确,那么,你这段程序是有问题的.
在java环境中,整数的确是占4个字节,但这只限于在"环境"中,即虚拟机中.如果输出到磁盘,整数"1"仍然是做为一个英文字符来保存,因此,实际的文件中,它仍然中占1字节.(汉字占2字节).所以你一行要输出40个数字才可以(40*8).
你可以在在资源管理器中右键新建一个文本文档,输入一个"1"后保存,再查看这个文件属性,它会显示"1字节".
ps:回车换行符(\r\n)也占2字节(16bit),这点也需要注意.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯