介绍
这篇文章运用简单易懂的例子给大家介绍利用JAVA如何实现读取二进制文件的内容,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
JAVA中读取文件内容的方法有很多,比如按字节读取文件内容,按字符读取文件内容,按行读取文件内容,随机读取文件内容等方法,本文就以上方法的具体实现给出代码,需要的可以直接复制使用
公共类ReadFromFile {/* * *以字节为单位读取文件,常用于读二进制文件,如图片,声音、影像等文件。 */公共静态孔隙readFileByBytes(字符串文件名){ 文件文件=新文件(文件名); InputStream=零; 尝试{ System.out.println(“以字节为单位读取文件内容,一次读一个字节:“);//一次读一个字节 在新FileInputStream=(文件); int tempbyte; 在((tempbyte=in.read ()) !=1) { System.out.write (tempbyte); } in.close (); }捕捉(IOException e) { e.printStackTrace (); 返回; } 尝试{ System.out.println(“以字节为单位读取文件内容,一次读多个字节:“);//一次读多个字节 byte [] tempbytes=新字节[100]; int byteread=0; 在新FileInputStream=(文件名); ReadFromFile.showAvailableBytes(的);//读入多个字节到字节数组中,byteread为一次读入的字节数 在((byteread=in.read (tempbytes) !=1) { system . out。写(tempbytes 0 byteread); } }捕捉(异常e1) { e1.printStackTrace (); 最后}{ 如果(在!=null) { 尝试{ in.close (); }捕捉(IOException e1) { } } } }/* * *以字符为单位读取文件,常用于读文本,数字等类型的文件 */公共静态孔隙readFileByChars(字符串文件名){ 文件文件=新文件(文件名); 读者读者=零; 尝试{ System.out.println(“以字符为单位读取文件内容,一次读一个字节:“);//一次读一个字符 读者=new InputStreamReader(新FileInputStream(文件); int tempchar; 在((tempchar=reader.read ()) !=1) {//对于windows下\ r \ n这两个字符在一起时,表示一个换行。//但如果这两个字符分开显示时,会换两次行。//因此,屏蔽掉\ r,或者屏蔽\ n。否,则将会多出很多空行。 如果(((char) tempchar) !=& # 39; \ " # 39;) { System.out.print ((char) tempchar); } } reader.close (); }捕捉(异常e) { e.printStackTrace (); } 尝试{ System.out.println(“以字符为单位读取文件内容,一次读多个字节:“);//一次读多个字符 char [] tempchars=new char [30]; int charread=0; 读者=new InputStreamReader(新FileInputStream(文件名));//读入多个字符到字符数组中,charread为一次读取字符数 在((charread=reader.read (tempchars) !=1) {//同样屏蔽掉\ r不显示 如果((charread==tempchars.length) ,,(tempchars [tempchars。长度- 1]!=& # 39;\ " # 39;)){ System.out.print (tempchars); 其他}{ for (int i=0;我& lt;charread;我+ +){ 如果(tempchars[我]==& # 39;\ " # 39;){ 继续; 其他}{ System.out.print (tempchars[我]); } } } } }捕捉(异常e1) { e1.printStackTrace (); 最后}{ 如果(读者!=null) { 尝试{ reader.close (); }捕捉(IOException e1) { } } } }/* * *以行为单位读取文件,常用于读面向行的格式化文件 */公共静态孔隙readFileByLines(字符串文件名){ 文件文件=新文件(文件名); BufferedReader读者=零; 尝试{ System.out.println(“以行为单位读取文件内容,一次读一整行:“); 读者=new BufferedReader(新FileReader(文件); 字符串tempString=零; int行=1;//一次读入一行,直到读入零为文件结束 在((tempString=reader.readLine ()) !=null) {//显示行号 System.out.println(“行”;+线+“:“;+ tempString); 线+ +; } reader.close (); }捕捉(IOException e) { e.printStackTrace (); 最后}{ 如果(读者!=null) { 尝试{ reader.close (); }捕捉(IOException e1) { } } } }/* * *随机读取文件内容 */公共静态孔隙readFileByRandomAccess(字符串文件名){ RandomAccessFile randomFile=零; 尝试{ System.out.println(“随机读取一段文件内容:“);//打开一个随机访问文件流,按只读方式 randomFile=新RandomAccessFile(文件名,“r");//文件长度,字节数 长fileLength=randomFile.length ();//读文件的起始位置 int beginIndex=(fileLength祝辞4),# 63;4:0;//将读文件的开始位置移到beginIndex位置。 randomFile.seek (beginIndex); byte[]字节=新字节[10]; int byteread=0;//一次读10个字节,如果文件内容不足十个字节,则读剩下的字节。//将一次读取的字节数赋给byteread 在((byteread=randomFile.read(字节)!=1){ system . out。写(字节0 byteread); } }捕捉(IOException e) { e.printStackTrace (); 最后}{ 如果(randomFile !=null) { 尝试{ randomFile.close (); }捕捉(IOException e1) { } } } }/* * *显示输入流中还剩的字节数 */私有静态孔隙showAvailableBytes (InputStream) { 尝试{ System.out.println(“当前字节输入流中的字节数为:“+ in.available ()); }捕捉(IOException e) { e.printStackTrace (); } } 公共静态void main (String [] args) { 字符串文件名=癈:/temp/newTemp.txt"; ReadFromFile.readFileByBytes(文件名); ReadFromFile.readFileByChars(文件名); ReadFromFile.readFileByLines(文件名); ReadFromFile.readFileByRandomAccess(文件名); } }利用JAVA如何实现读取二进制文件的内容