在游戏服务器的开发过程中,有很多地方需要读取文件,比如:服务器配置文件,日志文件。有的文件小,有的文件大。针对这些操作,我们需要采取不同的策略。直接上代码
package
com.test;
import
java.io.BufferedInputStream;
import
java.io.BufferedReader;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileReader;
import
java.io.IOException;
import
java.io.InputStream;
import
java.io.InputStreamReader;
import
java.io.RandomAccessFile;
import
java.io.Reader;
public
class
ReadFile {
/**
* 以字节为单位读取文件,常用于读二进制文件,如图片
*/
public
static
void
readFileByBytes(String fileName) {
File file =
new
File(fileName);
InputStream in =
null
;
try
{
System.out.println(
"以字节为单位读取文件内容,一次读一个字节:"
);
// 一次读一个字节
in =
new
FileInputStream(file);
int
tempbyte;
while
((tempbyte = in.read()) != -
1
) {
System.out.write(tempbyte);
}
in.close();
}
catch
(IOException e) {
e.printStackTrace();
return
;
}
// =============================================
try
{
System.out.println(
"以字节为单位读取文件内容,一次读多个字节:"
);
// 一次读多个字节
byte
[] tempbytes =
new
byte
[
100
];
int
byteread =
0
;
in =
new
FileInputStream(fileName);
ReadFile.showAvailableBytes(in);
// 读入多个字节到字节数组中,byteread为一次读入的字节数
while
((byteread = in.read(tempbytes)) != -
1
) {
System.out.write(tempbytes,
0
, byteread);
}
}
catch
(Exception e1) {
e1.printStackTrace();
}
finally
{
if
(in !=
null
) {
try
{
in.close();
}
catch
(IOException e1) {
}
}
}
}