我用 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("D:\ccc.txt")),"UTF-8"));
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file));
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream),5*1024*1024);方式清洗大约2G的文本,也是会包内存不足
上面是清洗之前的
下面是清洗之后的
问了其他人,说字符流可以实现,要怎么实现,麻烦详细些,谢谢
java以字符流的形式清洗超大文本
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
5条回答 默认 最新
z8g 2018-08-17 04:44关注楼主试试
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class QingXi { public static void main(String[]args) throws FileNotFoundException, IOException{ String pathRead = "D:/test_input.txt"; String pathWrite = "D:/test_output.txt"; FileReader fr = new FileReader(pathRead); FileWriter fw = new FileWriter(pathWrite); BufferedReader br = new BufferedReader(fr); BufferedWriter wr = new BufferedWriter(fw); String line = br.readLine(); while(line != null){ String str = line.replaceAll("---", ","); wr.append(str); wr.append("\n"); line = br.readLine(); } wr.flush(); wr.close(); br.close(); fw.close(); fr.close(); } }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报