84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
有一份10G以上大文本文件,需要替换里面的一些文本信息(每一行都有),如何高效读并替换掉生成新的文件
人生最曼妙的风景,竟是内心的淡定与从容!
먼저 여러 파일로 분할
두 스레드가 동일한 파일을 작업하는 것을 방지하기 위해 여러 스레드가 여러 파일을 작업합니다
파일을 한 줄씩 읽고 새 파일을 한 줄씩 씁니다
모든 파일 병합
1,4 그냥 리눅스 명령어를 사용하세요~
파일 파일 = 새 파일(파일 경로); BufferedInputStream fis = new BufferedInputStream(new FileInputStream(파일)); BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),510241024);String line = "";while((line = reader .readLine()) != null){
}
성능 향상을 위해 매핑된 IO가 필요할 수 있습니다. 자세한 내용은
Java에서 메모리 매핑 파일 또는 MappedByteBuffer를 사용하는 이유
java 대용량 파일 읽기 및 쓰기 작업, java nio의 MappedByteBuffer, 효율적인 파일/메모리 매핑
java.io와 java.nio의 성능 단순 비교
간단한 텍스트 교체라면 리눅스의 sed 명령어를 사용하면 됩니다.
텍스트 교체가 더 복잡한 경우 아래를 참조하세요.
http://stackoverflow.com/ques...
http://www.baeldung.com/java-...
사용spark分析、lines=sc.textFile("your_file");filterlines=lines.filter(your_filter_function)filterlines.xxx()
먼저 여러 파일로 분할
두 스레드가 동일한 파일을 작업하는 것을 방지하기 위해 여러 스레드가 여러 파일을 작업합니다
파일을 한 줄씩 읽고 새 파일을 한 줄씩 씁니다
모든 파일 병합
1,4 그냥 리눅스 명령어를 사용하세요~
파일 파일 = 새 파일(파일 경로);
으아아아BufferedInputStream fis = new BufferedInputStream(new FileInputStream(파일));
BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),510241024);
String line = "";
while((line = reader .readLine()) != null){
}
성능 향상을 위해 매핑된 IO가 필요할 수 있습니다. 자세한 내용은
을 참조하세요.Java에서 메모리 매핑 파일 또는 MappedByteBuffer를 사용하는 이유
java 대용량 파일 읽기 및 쓰기 작업, java nio의 MappedByteBuffer, 효율적인 파일/메모리 매핑
java.io와 java.nio의 성능 단순 비교
간단한 텍스트 교체라면 리눅스의 sed 명령어를 사용하면 됩니다.
텍스트 교체가 더 복잡한 경우 아래를 참조하세요.
http://stackoverflow.com/ques...
http://www.baeldung.com/java-...
사용spark分析、
lines=sc.textFile("your_file");
filterlines=lines.filter(your_filter_function)
filterlines.xxx()