# java.io.FileNotFoundException



## Ghorki (12. Dez 2012)

Hallo Leute,

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

Vielen Dank
Ghorki


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


```
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)
```


----------



## faetzminator (12. Dez 2012)

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.


----------



## Ghorki (12. Dez 2012)

Ich benutzte das Objekt Document


```
Document document = new Document();
document.open();
PdfWriter.getInstance(document, new FileOutputStream(getPfad() + "\\" + getRfid() + " " + getCurrTime() + ".pdf"));
```


----------



## faetzminator (12. Dez 2012)

Was willst du mir sagen? Du kannst trotzdem eigenhändig ein File-Objekt erzeugen, [c]exists()[/c] ausgeben und dann dieses dem FOS übergeben.


----------



## Ghorki (12. Dez 2012)

Verbesser mich bitte wenn ich einen Fehler gemacht habe.

So bekomme ich jedenfalls die gleiche Fehlermeldung


```
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.


```
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
```


----------



## X5-599 (12. Dez 2012)

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?


----------



## Ghorki (12. Dez 2012)

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.


----------



## SlaterB (12. Dez 2012)

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


----------



## faetzminator (12. Dez 2012)

Mach mal ein [c]trim()[/c] o.ä. auf den Getter der RFID.


----------



## Ghorki (12. Dez 2012)

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


----------

