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,然后写入新的文件。
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();
追问
怎么我一运行 就提示找不到符号
* 以行为单位读取文件,常用于读面向行的格式化文件
*/
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
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
参考技术A使用百度网盘免费分享给你,链接: https://pan.baidu.com/s/1azTiaPFQBlrclzRvCctz7Q
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
参考技术BJava程序如下:
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 Testpublic 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文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去