samedi 23 mai 2015

Probleme mit BufferedWriter und URL

Hi,

die dargestellte Methode ist dazu da Informationen zu einer config-Datei (bei mir textdatei) hinzuzufügen. Dafür wird ein String übergeben der mit "http://ift.tt/1Kdyncj; zu z.B. "http://ift.tt/1JLp7xV; zusammengefügt wird. Dort wird überprüft ob es diesen WoW-Server tatsächlich gibt und falls ja und der noch nicht in der LinkedList drinne ist soll der übergebene String in die LinkedList geschrieben werden und in die config-datei. Aber stattdessen gibt es eine file-not found exception (siehe unten) in dieser Zeile:
InputStream in = url.openConnection().getInputStream();

Ich hab da schon viel rumprobiert und merkwürdigerweise scheint es zu funktionieren wenn ich statt URL url = new URL(link); von Hand URL url = new URL("http://ift.tt/1JLp7xV;); schreibe, obwohl link und "http://ift.tt/1JLp7xV; das gleiche enthalten. Aber dann sind da andere komische Sachen, dass er dann den Server nicht in die Datei schreibt, bzw. nur in kleinbuchstaben und mit Zahlen funktioniert es auch. Ich hab da momentan irgendwie garkeinen Plan woran das liegen könnte und wäre über jede Hilfe serh dankbar ;)

Java Code:

  1.  
  2. public void addServer (String server) throws IOException {
  3. if (!this.serverList.contains(server)) { //Überprüfung ob LinkedListe den Server schon enthält
  4. StringBuilder sb = new StringBuilder();
  5. sb.append("http://ift.tt/1Kdyncj;);
  6. sb.append(server); //Zusammenfügen des teillinkes und des servers zum vollständigen link
  7. String link = sb.toString();
  8. //System.out.print(link);
  9. URL url = new URL(link);
  10. InputStream in = url.openConnection().getInputStream();
  11. String str = br.readLine();
  12. if (str.length() > 70 ) { //falls es den server nicht gibt ist der String wesentlich kürzer
  13. this.serverList.add(server);
  14. File file = new File("Textdatei/config.txt"); //meine config-datei
  15. FileWriter fw = new FileWriter(file);
  16. FileReader fr = new FileReader(file);
  17. br = new BufferedReader(fr);
  18. str = br.readLine();
  19. while (str != null && str.length() > 4) { //der server soll ans ende geschrieben werden (letzte zeile)
  20. bw.write(str);
  21. bw.newLine();
  22. str = br.readLine();
  23. }
  24.  
  25. sb.setLength(0);
  26. sb.append(server);
  27. bw.write(sb.toString()); //server soll geschrieben werden
  28. sb.setLength(0);
  29.  
  30. System.out.print(sb.toString());
  31. bw.close();
  32. }
  33.  
  34. }
  35.  
  36. }

Gibt dann folgendes:

at javafx.fxml.FXMLLoader$MethodHandler.invoke(Unknown Source)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at javafx.event.Event.fireEvent(Unknown Source)
at javafx.scene.Scene$ClickGenerator.postProcess(Unknown Source)
at javafx.scene.Scene$ClickGenerator.access$8100(Unknown Source)
at javafx.scene.Scene$MouseHandler.process(Unknown Source)
at javafx.scene.Scene$MouseHandler.access$1500(Unknown Source)
at javafx.scene.Scene.impl_processMouseEvent(Unknown Source)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$350(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$144/16893725.get(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source)
at com.sun.glass.ui.View.handleMouseEvent(Unknown Source)
at com.sun.glass.ui.View.notifyMouse(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$145(Unknown Source)
at com.sun.glass.ui.win.WinApplication$$Lambda$36/3326003.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.Trampoline.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
... 36 more
Caused by: java.io.FileNotFoundException: http://ift.tt/1Kdyncp
at sun.net.http://www.protocol.http.HttpURLConn...tream0(Unknown Source)
at sun.net.http://www.protocol.http.HttpURLConn...Stream(Unknown Source)
at auctionspackage.Config.addServer(Config.java:57)
at guipackage.Controller.addServer(Controller.java:26)
... 45 more


Probleme mit BufferedWriter und URL

0 commentaires:

Enregistrer un commentaire