2016-04-23 9 views
0

Manchmal erstellt PrintWriter die Datei automatisch für mich. Kann es die ganze Zeit funktionieren? Ich habe keine Ahnung, warum es nicht jedes Mal funktioniert. Hier ist mein Code.Wie erstellt PrintWriter manchmal eine Datei, aber erstellt sie nicht eine andere Datei?

String fileName = date + "-" + title; 

    //Write to file 
    try(PrintWriter writer = new PrintWriter(fileName, "UTF-8")) 
    { 
     writer.println(articleURL); 
     writer.println(body + "\n"); 
     for(String link: links) 
     { 
      writer.println(link + ","); 
     } 
     writer.close(); 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 

Dies ist der Fehler, den ich bekommen, wenn eine bestimmte Datei

java.io.FileNotFoundException: 20160423-California's next senator could be a Latina. Will her past mistakes get in the way? - LA Times (The filename, directory name, or volume label syntax is incorrect) 
at java.io.FileOutputStream.open0(Native Method) 
at java.io.FileOutputStream.open(FileOutputStream.java:270) 
at java.io.FileOutputStream.<init>(FileOutputStream.java:213) 
at java.io.FileOutputStream.<init>(FileOutputStream.java:162) 
at java.io.PrintWriter.<init>(PrintWriter.java:192) 
at java.io.PrintWriter.<init>(PrintWriter.java:232) 
at TextFromArticleCreator.writeToFile(TextFromArticleCreator.java:48) 
at NewsCrawler.write(NewsCrawler.java:90) 
at NewsCrawler.Scrape(NewsCrawler.java:56) 
at GUI.lambda$start$0(GUI.java:35) 
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) 
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) 
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) 
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) 
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) 
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) 
at javafx.event.Event.fireEvent(Event.java:198) 
at javafx.scene.Node.fireEvent(Node.java:8411) 
at javafx.scene.control.Button.fire(Button.java:185) 
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) 
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) 
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) 
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) 
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) 
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) 
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) 
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) 
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) 
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) 
at javafx.event.Event.fireEvent(Event.java:198) 
at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) 
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) 
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) 
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) 
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352) 
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275) 
at java.security.AccessController.doPrivileged(Native Method) 
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$355(GlassViewEventHandler.java:388) 
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) 
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387) 
at com.sun.glass.ui.View.handleMouseEvent(View.java:555) 
at com.sun.glass.ui.View.notifyMouse(View.java:937) 
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
at com.sun.glass.ui.win.WinApplication.lambda$null$149(WinApplication.java:191) 
at java.lang.Thread.run(Thread.java:745) 
+0

Um herauszufinden, warum es keine Datei erstellen kann, müssten Sie die Fehlermeldung lesen, die Sie am Ende drucken. Wenn Sie keinen Fehler erhalten, wird die Datei erstellt, auch wenn dies nicht der Fall ist. –

+0

Yah hat gerade gemerkt, dass ich euch den Fehler nicht gegeben habe. Es funktioniert für fast alles außer diesem einen – Ajackster

+2

Es gibt fast 2000 Ergebnisse für diese Fehlermeldung auf Stackoverflow allein. Sie können kein '' 'in einem Dateinamen haben. –

Antwort

0

Der Dateiname, Verzeichnisname oder Datenträgerbezeichnung zum Download versuchen, ist falsch

Das heißt, Sie kann keinen ' oder ? in einem Dateinamen haben.

Hinweis: Ich habe versucht, ein Duplikat in den fast 2000 Treffern für diesen Fehler auf Stackoverflow zu finden, konnte aber keine exakte Übereinstimmung finden.

+0

Die zulässige Dateinamensyntax hängt vom Betriebssystem ab. – Henry

+0

Süßer Dank Jungs das Problem behoben! – Ajackster