java.io.FileNotFoundException

Ghorki

Aktives Mitglied
Hallo Leute,

ich verstehe diese Exception einfach nicht..
Wäre lieb wenn Ihr mir weiterhelfen könntet.

Vielen Dank
Ghorki

Java:
PdfWriter.getInstance(document, new FileOutputStream(getPfad() + "\\" + getRfid() + " " + getCurrTime() + ".pdf"));

Java:
java.io.FileNotFoundException: C:\Users\ghorki\620183122209
12.12.2012.pdf (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch)
	at java.io.FileOutputStream.open(Native Method)
	at java.io.FileOutputStream.<init>(Unknown Source)
	at java.io.FileOutputStream.<init>(Unknown Source)
	at gui.GurtBearbeiten.createPdf(GurtBearbeiten.java:385)
	at gui.GurtBearbeiten$2.actionPerformed(GurtBearbeiten.java:297)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
 
Mach mal ein [c]new File(path).exists()[/c] um zu testen, ob die Datei existiert. Das File kannst du dann gleich statt dem String dem FOS übergeben.
 
Ich benutzte das Objekt Document

Java:
Document document = new Document();
document.open();
PdfWriter.getInstance(document, new FileOutputStream(getPfad() + "\\" + getRfid() + " " + getCurrTime() + ".pdf"));
 
Was willst du mir sagen? Du kannst trotzdem eigenhändig ein File-Objekt erzeugen, [c]exists()[/c] ausgeben und dann dieses dem FOS übergeben.
 
Verbesser mich bitte wenn ich einen Fehler gemacht habe.

So bekomme ich jedenfalls die gleiche Fehlermeldung

Java:
File file = new File(getPfad() + "\\" + getRfid() + " " + getCurrTime() + ".pdf");       
PdfWriter.getInstance(document, new FileOutputStream(file));
System.out.println(file.exists());

Was mir gerade aber noch aufgefallen ist, wenn ich anstatt getRfid() einen String direkt eintrage "987", dann passiert folgendes:
Ich bekomm eine andere Exception, das PDF wird aber trotzdem erstellt, jedoch tritt beim öffnen dieser ein Fehler auf.

Java:
com.itextpdf.text.DocumentException: java.lang.NullPointerException
	at com.itextpdf.text.pdf.PdfDocument.add(PdfDocument.java:717)
	at com.itextpdf.text.Document.add(Document.java:260)
	at gui.GurtBearbeiten.createPdf(GurtBearbeiten.java:395)
	at gui.GurtBearbeiten$2.actionPerformed(GurtBearbeiten.java:298)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
	at com.itextpdf.text.pdf.PdfDocument.add(PdfDocument.java:2357)
	at com.itextpdf.text.pdf.PdfDocument.add(PdfDocument.java:677)
	... 39 more
 
Zuletzt bearbeitet:
Die NullPointerException müsste man noch weiter verfolgen. Zu deinem ursprünglichen Problem: Kann es sein, dass der Wert den "getRfid()" zurückgibt ein \n oder ähnliches enthält? Oder wird da ein Integer zurückgegeben?
 
Dachte ich am Anfang auch, dass noch ein "\n" mitgegeben wird, aber es ist wirklich nur eine String Zeile.
Ich benutzte exakt die selbe Methode in einer anderen Klasse und dort funktioniert es... Das ist ja gerade das verwirrende für mich.???:L
Vorallem hat es vor ein paar Tagen noch funktioniert... ihrgendwo hab ich wohl währenddessen außerversehen etwas geändert, was den Fehler herbeiführt.
 
Zuletzt bearbeitet:
die Fehlermeldung im ersten Posting beweist den Zeilenumbruch,
du musst auch nicht 'dachten, 'wirklich' bezeugen und an frühere Vorkommnisse erinnern,
du kannst den String für den Dateipfad bzw. dessen Komponenten ganz einfach untersuchen um dich zu überzeugen

> C:\Users\ghorki\620183122209
> 12.12.2012.pdf

vor dem Datum, nach der langen Zahl ist ein Zeilenumbruch
(edit: ok, vielleicht nur im Forum extra umgebrochen bzw. sonst wie wegen des Leerzeichens dazugekommen, das weitere dann umso interessanter: )

im Zweifel bei Dateipfaden auch immer von Oberverzeichnissen aus anfangen, gegebenenfallse C:\ und mit listFiles() anschauen was da ist, mit eigenen Pfaden für Unterverzeichnisse/ letztlich Dateien vergleichen,
jedes Leerzeichen kann genauso wichtig sein

Strings kann man intensiv untersuchen, length(), contains(), jeder char einzeln usw.

------

die NullPointerException tritt in GurtBearbeiten.java:395 auf, es wird add() an einem Document aufgerufen,
dazu wurde noch kein Code gepostet, wie schon gesagt aber als Folgefehler anzunehmen
 
Zuletzt bearbeitet von einem Moderator:
Sehr sehr merkwürdig 😳
Ich habe vorhin den String mit syso auf einen Umbruch geprüft, ist aber nichts aufgetreten.
Mit der length Forschleife konnt ich nun den Umbruch sehen und hab ihn dann wie folgt mit trim entfernt.

Dankeschön für eure Hilfe 🙂
 

Zurück
Oben