java写入txt文件 想要修改txt文件每一行的第一个数字 加一就好

txt文件是115221033154420请问怎么写代码到时会有很多行的每行的第一个数字都要加一... txt文件是
1 1 5
2 2 10
3 3 15

4 4 20
请问怎么写代码
到时会有很多行的 每行的第一个数字都要加一
展开
 我来答
小傻

2015-08-12 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

  java实现向txt每行增加一位数字,思路是这样的:使用I/O操作每次读取一行文字,使用string增加一个数字一,保存在缓存另一个list里面,后接一个换行符,等到全部读取完毕,在读取list的内容,写入txt文件里面,示例如下:

package com.zeal.card; // 这里是我自己临时用的包名,你自己改一下就好了

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;

public class Demo {

    /**
     * 主方法
     * @param args
     */
    public static void main(String[] args) {
        printData();
    }

    /**
     * 读取txt文档第一行数据中的第3位到第9位,并输出到控制台
     */
    public static void printData() {

        // 定义文本文件数组,这里是临时演示用,请自己改写
        String[] txtFiles = {
                "c:/a.txt",
                "c:/b.txt",
                "c:/c.txt",
        };

        // 遍历文件
        for (int i=0; i<txtFiles.length; i++) {
            try {
                // 得到文件
                File file = new File(txtFiles[i]);
                // 如果文件存在
                if (file.exists()) {
                    // 建立缓冲包装器
                    BufferedReader in = null;
                    in = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
                    // 读出一行(因为只是读一行,没必要遍历全部文件内容)
                    String temp = in.readLine();
                    // 如果不为空,并且长度至少为9
                    if (temp != null) {
                       
                            String txt = "一"+temp;//每行前面增加一个数字一。
                            System.out.println("取出数据:" + txt);
                            List li= new ArrayList();
                            List li= new ArrayList();
            li.add(temp);
                        }
                    }
                    BufferedWriter in = null;
                    in = new BufferedWriter (new InputStreamWriter(new FileOutputStream(file)));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}
woaihouzhuang
2014-03-02 · TA获得超过259个赞
知道小有建树答主
回答量:245
采纳率:100%
帮助的人:227万
展开全部

写了一个简易的方案,但是效率比较低,如果有更好的方案还望不吝赐教;(不知道正则是否更方便些?)

按行读取文件,然后按照空格分组,对第一个数字加1,然后写入新的文件。


public static void writeFile() {
    BufferedReader reader = null;
    BufferedWriter writer = null;
    try{
        File file = new File("new.txt");
        if(!file.exists()) {
            file.createNewFile();
    }
    StringBuffer sb = new StringBuffer();
    reader = new BufferedReader(new FileReader("test.txt"));
    String line = null;
    //按行读取
    while((line = reader.readLine()) != null) {
        String[] arr = line.split("[ \t]++");
        if(arr.length < 3) {
        sb.append(line).append("\r\n");
        continue;
    }
    //获取第一个数字,并加1
    int num = Integer.valueOf(arr[0]);
    num ++;
    sb.append(num).append("\t").append(arr[1]).append("\t").append(arr[2]).append("\r\n");
    }
    //写入新的文件
    writer = new BufferedWriter(new FileWriter(file));
    writer.write(sb.toString());
    }catch (IOException e) {
        e.printStackTrace();
    } finally {
        if(reader != null) {
        try {
            reader.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    if(writer != null) {
        try {
            writer.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }
    }
}
追问

怎么我一运行 就提示找不到符号

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a695004175
2014-03-02 · 超过18用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:50.3万
展开全部
/**
* 以行为单位读取文件,常用于读面向行的格式化文件
*/
public static void readFileByLines(String fileName) {
File file = new File(fileName);
BufferedReader reader = null;
try {
System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
// 显示行号
System.out.println("line " + line + ": " + tempString);
line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}

先读 ,然后修改,再写入txt。 笨方法,如果数据量大,不建议使用,只获得第一个字符,就好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式