有一个文件 test.txt ,读取文件每一行计算每一行的和,最终将结果保存到result.txt文件中
程序员文章站
2022-06-16 12:40:18
...
-
有一个文件 test.txt ,里面的内容是:(有换行)
-
要求:
-
请先将testData.txt文件中的内容读取出来
-
将读取的内容通过处理后,将结果保存到result.txt文件中,保存的结果如下:
-
示例代码:
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;
}
}
结果: