Java性能优化之组件-缓冲
2016-06-26 16:49
423 查看
缓冲区是一个特定的存储区域,可以协调应用程序上下层质量的性能差异,提高系统运行效率。缓冲最常使用的场景是I/O处理。JDK中提供了很多带缓冲的I/O组件。比如读取文件。
public
static
void readByByte(String
file) {
InputStreamis = null;
try {
is = new FileInputStream(file);
//按字节流读取
int tmpByte;
while ((tmpByte = is.read()) != -1) {
System.out.println(tmpByte);
}
} catch (IOException e) {
// do something...
}
if(is !=
null){
try{
is.close();
}
catch(IOException e){
// do something...
}
finally{
// do something...
}
}
}
该读取方式一次只能读取一个字节,适合读取二进制文件。如果想一次读取文本文件中的字符可以采用FileReader。
public static void readByChar(Stringfile)
{
FileReader reader =null;
try {
reader =new FileReader(file);//按字符流读取
int charCode;
while ((charCode = reader.read()) != -1) {
System.out.println((char)
charCode);
}
}catch (IOException e) {
// do something...
}
if (reader !=null) {
try {
reader.close();
}catch (IOException e) {
// do something...
}finally {
// do something...
}
}
}
以上读取方式都只能一次读取一个字节数据,要读取整个文件就必须循环读取每一个字节,直到文件结束,效率较低,如果只是读取文本文件,此时可以采用BufferedReader,它采用缓冲的方式读取,一次可以读取一行。
public static void readByLine(String
file) {
BufferedReader reader =null;
try {
reader =new BufferedReader(new
FileReader(file));
String line;
while ((line = reader.readLine())
!=null) {
System.out.println(line);
}
}catch (IOException
e) {
// do something...
}
if (reader !=null) {
try {
reader.close();
}catch (IOException
e) {
// do something...
}finally {
// do something...
}
}
}
public
static
void readByByte(String
file) {
InputStreamis = null;
try {
is = new FileInputStream(file);
//按字节流读取
int tmpByte;
while ((tmpByte = is.read()) != -1) {
System.out.println(tmpByte);
}
} catch (IOException e) {
// do something...
}
if(is !=
null){
try{
is.close();
}
catch(IOException e){
// do something...
}
finally{
// do something...
}
}
}
该读取方式一次只能读取一个字节,适合读取二进制文件。如果想一次读取文本文件中的字符可以采用FileReader。
public static void readByChar(Stringfile)
{
FileReader reader =null;
try {
reader =new FileReader(file);//按字符流读取
int charCode;
while ((charCode = reader.read()) != -1) {
System.out.println((char)
charCode);
}
}catch (IOException e) {
// do something...
}
if (reader !=null) {
try {
reader.close();
}catch (IOException e) {
// do something...
}finally {
// do something...
}
}
}
以上读取方式都只能一次读取一个字节数据,要读取整个文件就必须循环读取每一个字节,直到文件结束,效率较低,如果只是读取文本文件,此时可以采用BufferedReader,它采用缓冲的方式读取,一次可以读取一行。
public static void readByLine(String
file) {
BufferedReader reader =null;
try {
reader =new BufferedReader(new
FileReader(file));
String line;
while ((line = reader.readLine())
!=null) {
System.out.println(line);
}
}catch (IOException
e) {
// do something...
}
if (reader !=null) {
try {
reader.close();
}catch (IOException
e) {
// do something...
}finally {
// do something...
}
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- 深入理解PHP7内核之FAST_ZPP
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序