package com.zyt.interview;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
import org.apache.commons.io.Charsets;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
/**
* 大文件读取(超过内存大小)
* @author Administrator
*
*/
public class BigFileRead {
/**
* Scanner读取
* @param path
* @throws IOException
*/
public static void readScanner(String path) throws IOException{
FileInputStream inputStream=null;
Scanner scan=null;
try {
inputStream=new FileInputStream(path);
scan=new Scanner(inputStream, "UTF-8");
while(scan.hasNextLine()){
String line=scan.nextLine();
System.out.println(line);
}
if(scan!=null)
throw scan.ioException();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (inputStream != null) {
inputStream.close();
}
if (scan != null) {
scan.close();
}
}
}
/**
* apache common io 读取
* @param path
*/
public void readApacheCommon(String path){
LineIterator it=null;
try {
it = FileUtils.lineIterator(new File(path),Charsets.UTF_8.name());
while(it.hasNext()){
String line = it.nextLine();
System.out.println(line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
LineIterator.closeQuietly(it);
}
}
/**
* buffer读取
*/
public void readBuffer(String path){
File file=new File(path);
try {
BufferedReader reader=new BufferedReader(new FileReader(file), 10*1024*1024);
String line=null;
while((line=reader.readLine())!=null){
System.out.println(line);
}
reader.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
大文件读取(超过内存)
最新推荐文章于 2024-07-31 14:27:48 发布