/** |
* 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 |
* |
* @param fileName |
* 文件的名 |
*/ |
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); |
ReadFromFile.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) { |
} |
} |
} |
} |
/** |
* 显示输入流中还剩的字节数 |
* |
* @param in |
*/ |
private static void showAvailableBytes(InputStream in) { |
try { |
System.out.println( "当前字节输入流中的字节数为:" + in.available()); |
} catch (IOException e) { |
e.printStackTrace(); |
} |
} |