2017-09-21 4 views
0
public class MakeNewFile{ 
    static HashMap<String, User> hm = new HashMap<String, User>(); 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     System.out.println("Hello!!"); 
     try{ 
      File inputFile = new File("C:\\apache-tomcat-7.0.34\\webapps\\products\\Details.txt"); 
      System.out.println("Done"); 
      boolean resut = inputFile.createNewFile(); 
      System.out.println(resut); 
      System.out.println("File found");   
      //fileInputStream = new FileInputStream(inputFile);         
      FileInputStream fileInputStream = new FileInputStream(inputFile); 
      ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream); 
      //out.println("hiii2"); 
      hm= (HashMap)objectInputStream.readObject(); 
      System.out.println("hiii" +hm); 

      if(hm.containsKey("username")) 
       { String error_msg = "Username already exist as " + "usertype";} 
      else{ 
       User user = new User("firstname", "lastname", "email", "username","password","usertype"); 
       hm.put("username", user); 
       FileOutputStream fileOutputStream = new FileOutputStream("C:\\apache-tomcat-7.0.34\\webapps\\products\\Details.txt"); 
       ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); 
       objectOutputStream.writeObject(hm); 
       objectOutputStream.flush(); 
       objectOutputStream.close(); 
       fileOutputStream.close(); 

      } 
     } 
     catch(Exception ex){ 

     } 

    } 
} 

Die Datei wird nicht erstellt, während der Code ausgeführt wird. Der Code führt try Block nicht nach FileInputStream aus. Wo ist das Problem? Ich habe eine Lösung ausprobiert. Datei wurde erstellt, aber objectInputStream ist nicht verfügbar.ObjectInputStream ist nicht verfügbar

+2

Schlucken Sie keine Ausnahmen. Fügen Sie 'ex.printStackTrace();' in Ihrem Fang hinzu. Fügen Sie hinzu, was Sie als Ergebnis sehen. – Pshemo

+2

Ja, niemals eine Ausnahme machen, ohne etwas damit zu tun. Es wird nur Verwirrung stiften. Wenn Sie überhaupt keine Lust haben zu fangen, geben Sie einfach Ihre Hauptmethode an, um eine Ausnahme auszulösen und das Programm abstürzen zu lassen. Es ist viel besser als eine Ninja-Ausnahme, die Sie nicht bemerken. – Gendarme

+0

Datei nicht gefunden, vielleicht? –

Antwort

0

Nachdem der Code lokal ausgeführt wurde, ist die ausgelöste Ausnahme eine EOF-Ausnahme - java.io.EOFException. Eine Lösung wäre, eine Überprüfung zu machen, um zu sehen, ob der fileInputStream verfügbar ist:

+0

fileInputStream ist verfügbar, aber objectInputStream ist nicht verfügbar. Also wird die innere if-Schleife nicht ausgeführt. Was soll ich jetzt tun? –

+0

Änderungen an der Lösung durch Entfernen der Überprüfung objectInputStream.available(). –

+0

@divya patel - Hat die obige Lösung funktioniert? –

Verwandte Themen