java如何高效读写10G以上大文件
黄舟
黄舟 2017-04-18 10:52:01
0
5
622

有一份10G以上大文本文件,需要替换里面的一些文本信息(每一行都有),如何高效读并替换掉生成新的文件

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(5)
伊谢尔伦
  1. 먼저 여러 파일로 분할

  2. 두 스레드가 동일한 파일을 작업하는 것을 방지하기 위해 여러 스레드가 여러 파일을 작업합니다

  3. 파일을 한 줄씩 읽고 새 파일을 한 줄씩 씁니다

  4. 모든 파일 병합

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가 필요할 수 있습니다. 자세한 내용은

을 참조하세요.
  1. Java에서 메모리 매핑 파일 또는 MappedByteBuffer를 사용하는 이유

  2. java 대용량 파일 읽기 및 쓰기 작업, java nio의 MappedByteBuffer, 효율적인 파일/메모리 매핑

  3. java.io와 java.nio의 성능 단순 비교

Peter_Zhu

간단한 텍스트 교체라면 리눅스의 sed 명령어를 사용하면 됩니다.

텍스트 교체가 더 복잡한 경우 아래를 참조하세요.

  1. http://stackoverflow.com/ques...

  2. http://www.baeldung.com/java-...

刘奇

사용spark分析、
lines=sc.textFile("your_file");
filterlines=lines.filter(your_filter_function)
filterlines.xxx()

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿