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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java写入txt文件 想要修改txt文件每一行的第一个数字 加一就好相关的知识,希望对你有一定的参考价值。

txt文件是
1 1 5
2 2 10
3 3 15

4 4 20
请问怎么写代码
到时会有很多行的 每行的第一个数字都要加一

  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();
            
        
    

参考技术A

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

按行读取文件,然后按照空格分组,对第一个数字加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();
        
        
    

追问

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

本回答被提问者采纳
参考技术B /**
* 以行为单位读取文件,常用于读面向行的格式化文件
*/
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。 笨方法,如果数据量大,不建议使用,只获得第一个字符,就好。

求java 程序 要求:读取txt文件,文件里面有很多行数字,然后输出每一行里面,各位数字的和 例

求java 程序
要求:读取txt文件,文件里面有很多行数字,然后输出每一行里面,各位数字的和
例如:
文件:23
496
输出:5
19

要求运用 file i/o, string, try/catch

谢谢大神!

《java 程序》百度网盘资源免费在线观看

链接: https://pan.baidu.com/s/1azTiaPFQBlrclzRvCctz7Q

提取码:1mur    

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

参考技术A

使用百度网盘免费分享给你,链接: https://pan.baidu.com/s/1azTiaPFQBlrclzRvCctz7Q

 提取码: 1mur 

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

参考技术B

Java程序如下:

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


public class HardWork 
public static void main(String[] args) 
try 
FileInputStream fis = new FileInputStream("c:\\\\test.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String line;
int sum;
int i;

while((line = br.readLine()) != null) 
sum = 0;
for(i=0; i<line.length(); i++) 
sum += line.charAt(i) - '0';

System.out.println(sum);


catch(Exception e) 
e.printStackTrace();



运行测试:

5

19


文件内容:

23

496

追问

请问再加什么能既显示文件内容,又显示结果呢

追答

修改后的Java程序:

import java.util.ArrayList;
  
public class HardWork 
    public static void main(String[] args) 
        try 
            ...
            ArrayList<Integer> list = new ArrayList<Integer>();
                        
            System.out.println("文件内容:");
            while((line = br.readLine()) != null) 
             System.out.println(line);
                sum = 0;
                for(i=0; i<line.length(); i++) 
                    sum += line.charAt(i) - '0';
                
                list.add(sum);
            
            
            System.out.println("计算结果:");
            for(i=0; i<list.size(); i++) 
             System.out.println(list.get(i) + " ");
            
        
        catch(Exception e) 
            e.printStackTrace();
        
    

追问

谢谢大神!!

本回答被提问者采纳
参考技术C public class Test

 public static void main(String... args)

  File file = new File("d:\\\\test.txt");

  BufferedReader br = null;

  try 

   br = new BufferedReader(new FileReader(file));

   String temp;

   while((temp=br.readLine())!=null)

    int n = temp.length();

    int num = Integer.parseInt(temp);

    int sum = 0;

    for(int i=0;i<n;i++)

     sum+=(int)num/Math.pow(10, i)%10;

    System.out.println(sum);

   

   catch (Exception e) 

   e.printStackTrace();

  finally

   try 

    br.close();

    catch (IOException e) 

    e.printStackTrace();

   

  

 

追问

请问再加什么能既显示文件内容,又显示结果呢

以上是关于java写入txt文件 想要修改txt文件每一行的第一个数字 加一就好的主要内容,如果未能解决你的问题,请参考以下文章

java——修改txt文件中某一行的内容

把txt文件中的数据 写入mongodb

java读取、修改、写入txt文件

java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去

如何在每一行的末尾添加每个单词?单词和行在不同的txt文件中

Linux 基础操作 修改文件