有一个文件 test.txt ,读取文件每一行计算每一行的和,最终将结果保存到result.txt文件中

  1. 有一个文件 test.txt ,里面的内容是:(有换行)

     
    01|02|03|04|05|06|07|08|09|10
    11|12|13|14|15|16|17|18|19|20
    21|22|23|24|25|26|27|28|29|30
    31|32|33|34|35|36|37|38|39|40
    41|42|43|44|45|46|47|48|49|50
    51|52|53|54|55|56|57|58|59|60
  2. 要求:

    1. 请先将testData.txt文件中的内容读取出来

    2. 将读取的内容通过处理后,将结果保存到result.txt文件中,保存的结果如下:

       
      第1行总和 + ... + 第n-1行总和 + 第n行总和 = 所有行总和

示例代码:
package com.hcq.main;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Main {

	public static void main(String[] args) {
		// 读取操作
		File file = new File("testData.txt");
		String str = readTextFromFile(file);
		System.out.println("处理之后的内容为: " + str);
		// 写入操作
		File saveResult = new File("result.txt");
		boolean result = writeText2File(str, saveResult, false);
		System.out.println(result ? "操作完成!" : "操作失败!");
	}

	// 读取文件方法并处理读取的内容
	public static String readTextFromFile(File file) {
		if (file == null || !file.exists())
			return null;
		try (BufferedReader br = new BufferedReader(new FileReader(file));) {
			StringBuilder sb = new StringBuilder();
			String s = null;
			long sum = 0;// 每次读取的计算结果
			long finallyNum = 0;// 计算最终结果
			while ((s = br.readLine()) != null) {
				sum = 0;// 清零
				String[] split = s.split("[|]");
				for (String str : split) {
					int num = Integer.parseInt(str);
					sum += num;
				}
				sb.append(sum).append('+');
				finallyNum += sum;
			}
			sb.delete(sb.length() - 1, sb.length());
			sb.append("=").append(finallyNum);
			return sb.toString();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

	// 写入操作
	public static boolean writeText2File(String text, File file, boolean append) {
		if (text == null || "".equals(text) || file == null) {
			return false;
		}
		try (BufferedWriter bw = new BufferedWriter(new FileWriter(file, append))) {
			bw.write(text);
			return true;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return false;
	}
}

结果:
有一个文件 test.txt ,读取文件每一行计算每一行的和,最终将结果保存到result.txt文件中_第1张图片

你可能感兴趣的:(javaSE)