首页 > 解决方案 > 为什么这段代码在运行时不打印任何内容?

问题描述

我一直坚持这一点,我一生都无法弄清楚为什么当代码运行时没有显示,我已经测试过,如果我删除文件,它将显示错误消息。

package binaryfile;    
import java.io.EOFException;    
import java.io.FileInputStream;    
import java.io.FileNotFoundException;
import java.io.IOException;    
import java.io.ObjectInputStream;

public class ReadBinaryFile {

       public static void main(String[] args) {                        
             String inStr="";    
             int countInt = 0, countDouble = 0;    
             int sumInt = 0, minInt = 0, maxInt = 0, numInt;    
             double sumDouble = 0 , minDouble = 0, maxDouble = 0, numDouble;    
             ObjectInputStream myObjStream = null;    
             FileInputStream fin = null;

             try {    
                    fin = new FileInputStream("data.dat");    
                    myObjStream = new ObjectInputStream(fin);

                    // loop to read the first 16 characters    
                    for(int i=0;i<16;i++)    
                           inStr += myObjStream.readChar();

                    // read an int and an double till the end of file    
                    numInt = myObjStream.readInt();

                    countInt++;    
                    sumInt += numInt;    
                    if(countInt == 1)    
                    {    
                           minInt = numInt;    
                           maxInt = numInt;    
                    }else    
                    {    
                           if(maxInt < numInt)    
                                 maxInt = numInt;

                           if(minInt > numInt)    
                                 minInt = numInt;    
                    }
                          
                    numDouble = myObjStream.readDouble();    
                    countDouble++;    
                    sumDouble += numDouble;

                    if(countDouble == 1)    
                    {    
                           minDouble = numDouble;    
                           maxDouble = numDouble;    
                    }else    
                    {    
                           if(maxDouble < numDouble)    
                                 maxDouble = numDouble;

                           if(minDouble > numDouble)    
                                 minDouble = numDouble;    
                    }                                                          
             } catch (FileNotFoundException e) {                               
                    System.out.println("File data.dat not found");    
             }catch(EOFException e)    
             {                                    
                    try {    
                           //     close the file    
                           fin.close();    
                           myObjStream.close();

                           // Display the results    
                           System.out.println("Characters : "+inStr);    
                           System.out.println("Total number of integers : "+countInt);    
                           System.out.println("Total number of doubles : "+countDouble);    
                           System.out.println("Sum of all integers : "+sumInt);    
                           System.out.println("Sum of all doubles : "+sumDouble);

                           if(countInt > 0)    
                           {    
                                 System.out.println("Minimum Integer : "+minInt);    
                                 System.out.println("Maximum Integer : "+maxInt);    
                                 System.out.println("Average Integer : "+(sumInt/countInt));    
                           }
                                  
                           if(countDouble > 0)    
                           {    
                                 System.out.println("Minimum Double : "+minDouble);    
                                 System.out.println("Maximum Double : "+maxDouble);    
                                 System.out.println("Average Double : "+(sumDouble/countDouble));    
                           }    
                    } catch (IOException e1) {    
                           System.out.println(e1.getMessage());    
                    }                                                          
             }catch (IOException e) {                               
                    System.out.println(e.getMessage());    
             }    
       }    
}

标签: javafilestream

解决方案


推荐阅读