利用JAVA如何实现读取二进制文件的内容

  介绍

这篇文章运用简单易懂的例子给大家介绍利用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如何实现读取二进制文件的内容