Problem bei Schulhausaufgabe

Status
Nicht offen für weitere Antworten.

dadtimo

Mitglied
Code:
import java.io.*;
import java.net.*;
public class HttpRequest
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
		String userinput = "";
		String read = "";
		String text ="";
		char[] name;
		String filename= "";
		URL url;
		int i;
		int j=0;
		
		System.out.print("\nIhr Link:\thttp://");
		userinput = "http://"+br0.readLine();
		url = new URL(userinput);
		name = new char[userinput.length()+1];
		i = userinput.length();
		
		while(name[i]!='/' && i!=0)
		{
			i--;
			name[i] = userinput.charAt(i);
			System.out.println(name[i]);
		}
		for(i=0; i<userinput.length(); i++)
		{
			if(name[i]=='/')
			{
				i++;
			}
			filename = filename + name[i];
		}
		System.out.println(filename);
		BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
		while((read = br1.readLine()) != null)
		{
			j++;
			System.out.println(i+":\t"+read);
			text = text+read;		
		}
		FileOutputStream fileOut = new FileOutputStream(filename);
		fileOut.write(text.getBytes(), 0, text.length());
		fileOut.close();
		
	}
}

ich hab da nen problem er zeigt mir an das ich bei dem FileOutputStreamer nen fehler mim dateinamen hätte abba komischer weise funktioniert die Ausgabe des Dateinamens richtig



Das Proggie soll ne datei von einer beliebigen HP laden und speichern können
 
S

SlaterB

Gast
> er zeigt mir an das ich bei dem FileOutputStreamer nen fehler mim dateinamen hätte

gehts auch konkreter?
welcher Link, welche genaue Fehlermeldung?
 

dadtimo

Mitglied
Exception in thread "main" java.io.FileNotFoundException: index.php (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
at HttpRequest.main(HttpRequest.java:45)
 

Joker

Bekanntes Mitglied
das dürfte daran liegen das die Datei an dieser Stelle nicht vorhanden ist (hast du / berücksichtigt?).

Genauso steht es doch auch in der API

http://www.dcs.gla.ac.uk/courses/teaching/jdk1.2_api/java/io/FileOutputStream.html#FileOutputStream(java.io.File)

FileNotFoundException - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
 

dadtimo

Mitglied
ja bei dem Programm isses ja so der user tippt den link an den er runterladen will, das Programm sucht dann beim link von hinten ab den dateinamen und hört auf sobald ein / kommt
un das speichert er in filename und gibts dann dem FileOutputStream

un ich hab bisher imma mit dateien ausgetestet die exisitieren
 

Joker

Bekanntes Mitglied
probiers mal so:

Code:
import java.io.*; 
import java.net.*; 
public class HttpRequest 
{ 
   public static void main(String[] args) throws IOException 
   { 
      BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in)); 
      String userinput = ""; 
      String read = ""; 
      String text =""; 
      char[] name; 
      String filename= ""; 
      URL url; 
      int i; 
      int j=0; 
       
      System.out.print("\nIhr Link:\thttp://"); 
      userinput = "http://"+br0.readLine(); 
      url = new URL(userinput); 
      name = new char[userinput.length()+1]; 
      i = userinput.length(); 
       
      while(name[i]!='/' && i!=0) 
      { 
         i--; 
         name[i] = userinput.charAt(i); 
         System.out.println(name[i]); 
      } 
      for(i=0; i<userinput.length(); i++) 
      { 
         if(name[i]=='/') 
         { 
            i++; 
         } 
         filename = filename + name[i]; 
      } 
      System.out.println(filename); 
      BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream())); 
      while((read = br1.readLine()) != null) 
      { 
         j++; 
         System.out.println(i+":\t"+read); 
         text = text+read;       
      } 
      File file = new File(filename);
     
      if(!file.exists()) {
         System.out.println("Die Datei "+filename+" existiert nicht!");  
      } else if (!file.canWrite()){
          System.out.println("Keine Schreibrechte vorhanden");
      } else {
      FileOutputStream fileOut = new FileOutputStream(filename); 
      fileOut.write(text.getBytes(), 0, text.length()); 
      fileOut.close(); 
      }
       
   } 
}
 

dadtimo

Mitglied
Nein läuft imma nochned richtig
hier is mal die Ausgabe mit sämtlichen Kontrollausgaben (den Quellcode kann es öffnen nur ned speichern)

Code:
Ihr Link:       [url]http://127.0.0.1/index.php[/url]
p
h
p
.
x
e
d
n
i
/
index.php
26:     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
26:     <html xmlns="http://www.w3.org/1999/xhtml">
26:     <head>
26:     <link rel="stylesheet" href="src/style.css" />
26:     <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
26:     <title>Verwaltung</title>
26:     </head>
26:
26:     <frameset cols="10%, *" border="4" style="border-style:dotted">
26:             <frame src="src/links.php" name="navi" noresize="noresize"/>
26:             <frame src="src/main.php" name="main" noresize="noresize"/>
26:     </frameset><noframes></noframes>
26:     </html>
Die Datei index.php existiert nicht!
timo@timo-laptop:~/Desktop$


ich hab kein plan was nun noch verändert werden muss wie man in der zeile über zeile 26 sieht schreibt er die datei auch richtig hin nur übernimmt sie nicht

ich könnte echt verzweifeln
plz help
 

dadtimo

Mitglied
kann es sein das ich die variable filename noch mal in eine andere form casten muss weil komischerweise kommt er beispielsweise mit FileOutputStream("seite.html"); zurecht nur ned mit dem filename^^
 

happy_robot

Bekanntes Mitglied
du arbeitest scheinbar auf einer linux-maschine.

scheint mir eher ein rechte-problem zu sein als ein java-problem.
hast du ausführungs- und schreibrechte in dem verzeichnis????
 

dadtimo

Mitglied
also von daher ich hab auf jeden fall schreib und lese rechte hatte ja schließlich auch schon vorher mal ne datei aufn desktop erstellt mit dem programm alledings hab ich da den dateinamen festgelegt und ned automatisch erstellen lassen
 

happy_robot

Bekanntes Mitglied
dann ist dein pfad einfach falsch.

lass dir mal vorm öffnen das aktuelle verzeichnis ausgeben. du öffnest die datei ja relativ.

öffne das file mal absolut mit

Code:
filename = "/home/timo/Desktop/index.php";
File file = new File(filename);

das sollte gehen.
 

happy_robot

Bekanntes Mitglied
dein pfad ist definitiv nicht voll qualifiziert und schreibrechte auf / hast du eben nicht!
du willst in /index.php schreiben und das darfst du nun mal nicht.
 

dadtimo

Mitglied
das stimmt nicht! ich hab das programm so gemacht, dass der / am anfang weg gemacht wird demnach isses ne normale datei und kein Pfad.

un wenn ich als datei anstatt filename beispielsweise seite.html eingebe dann funzt das.

ich hab extra um zu überprüfen, dass auch wirklich kein / davor steht eine ausgabe nochmal reingesetzt bevor ich es schreiben lies sodass ich im terminal nochmal gezeigt bekomme wie die datei bzw der pfad ist.

Code:
import java.io.*;
import java.net.*;
public class HttpRequest
{
   public static void main(String[] args) throws IOException
   {
      BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
      String userinput = "";
      String read = "";
      String text ="";
      char[] name;
      String filename= "";
      URL url;
      int i;
      int j=0;
       
      System.out.print("\nIhr Link:\thttp://");
      userinput = "http://"+br0.readLine();
      url = new URL(userinput);
      name = new char[userinput.length()+1];
      i = userinput.length();
       
      while(name[i]!='/' && i!=0)
      {
         i--;
         name[i] = userinput.charAt(i);
         if(name[i]=='/')
         {
         	i++;
         	break;
         }
         System.out.println(name[i]);
      }
      for(i=0; i<userinput.length(); i++)
      {
         if(name[i]=='/' || name[i]==' ') //durch diesen vorgang wird ein / im dateinamen weggelassen genauso 
                                                     //leerzeichen weiter oben im Programm wird auch schon gefiltert und ausgegeben
         {
            i++;
         }
         filename = filename + name[i];
      }
      ;
      System.out.println(filename); //Kontroll ausgabe
      BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
      while((read = br1.readLine()) != null)
      {
         j++;
         System.out.println(i+":\t"+read);
         text = text+read;       
      }
      File file = new File(filename);
      if(file.exists()) 
      {
		  OutputStream fileOut = new FileOutputStream(filename);
		  fileOut.write(text.getBytes(), 0, text.length());
		  fileOut.close();
      } else 
      {
      System.out.println("Die Datei"+filename+"existiert nicht!");
      }
       
   }
}

Hier erneut das Programm mit entsprechenden kommentaren

und hier kommt die Ausgabe (wo auch die Datei richtig benannt wird

Code:
timo@timo-laptop:~/Desktop$ javac HttpRequest.java 
timo@timo-laptop:~/Desktop$ java HttpRequest 

Ihr Link:       [url]http://127.0.0.1/index.php[/url]
p
h
p
.
x
e
d
n
i
index.php
26:     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
26:     <html xmlns="http://www.w3.org/1999/xhtml">
26:     <head>
26:     <link rel="stylesheet" href="src/style.css" />
26:     <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
26:     <title>Verwaltung</title>
26:     </head>
26:
26:     <frameset cols="10%, *" border="4" style="border-style:dotted">
26:             <frame src="src/links.php" name="navi" noresize="noresize"/>
26:             <frame src="src/main.php" name="main" noresize="noresize"/>
26:     </frameset><noframes></noframes>
26:     </html>
Die Dateiindex.phpexistiert nicht!
timo@timo-laptop:~/Desktop$
 

dadtimo

Mitglied
So Leute habs mal auf nem Windoof rechner getestet. Funzt da auch ned imma der gleiche Fehler also nix von wegen Lese-Schreib-Rechte

was kann da bloß los sein?

bitte helft mir bei dem Problem

danke im voraus
 

Ellie

Aktives Mitglied
Benutzt du zufällig XAMPP? Dann muss der Link http://127.0.0.1/xampp/index.php lauten. (Ach ja, und ist Apache überhaupt gestartet?)

Übrigens weiß ich nicht, wie die anderen Nutzer das sehen, aber ich wäre dir sehr verbunden, wenn du in normalem Deutsch und nicht in diesem Pseudo-WWW-Slang („abba“, “imma“ „ned“, „isses“) schreiben würdest, es macht deine Postings nämlich schlecht lesbar.
 

dadtimo

Mitglied
nein ich verwende kein xampp das is schon richtig die datei kann ich öffnen im Firefox der OfflineServer von mir ist der ganz normale apache
 

happy_robot

Bekanntes Mitglied
dadtimo hat gesagt.:
........ Funzt da auch ned imma ...
auf windows könnten es file-locks sein. und die aussage dass es "nicht imma" funktioniert impliziert daß es hier und da mal geht. wenn du aber sagst daß es mit nem anderen file-namen funktioniert deutet daß eigentlich ganz klar auf irgendein fehlendes recht oder ein lock hin.

da du dich konsequent weigerst den tatsächlichen physikalischen pfad der datei anzugeben habe ich langsam die vermutung daß du auf "http://127.0.0.1/index.php" schreiben willst was so aber nicht geht!
 

happy_robot

Bekanntes Mitglied
dadtimo hat gesagt.:
ausserdem würde er mia ja sonst ned den datei inhalt ausgeben oda?^^
du liest von einer URL via HTTP.

dann schneidest du von der URL alles ab bis "/index.php" übrigbleibt und versuchst da rein zu schreiben.
kann nicht funktionieren!

du brauchst den absoluten physikalischen pfad auf der platte von deiner index.php!
steht aber schon viel weiter oben irgendwo. wenn du das mal probieren würdest............
 

HoaX

Top Contributor
Code:
      File file = new File(filename);
      if(file.exists())
      {
        OutputStream fileOut = new FileOutputStream(filename);
        fileOut.write(text.getBytes(), 0, text.length());
        fileOut.close();
      } else
      {
      System.out.println("Die Datei"+filename+"existiert nicht!");
      }
ääähm: wieso sollte die datei, die du runter laden willst schon existieren? ich halte den if um das schreiben der datei für sinnfrei.
 

happy_robot

Bekanntes Mitglied
HoaX hat gesagt.:
ääähm: wieso sollte die datei, die du runter laden willst schon existieren? ich halte den if um das schreiben der datei für sinnfrei.
es ist nur die datei die er bereits ausgegeben hat, nicht die die er jetzt runterladen will.
er will scheinbar die .php-datei ändern damit sie beim nächsten aufruf etwas anderes macht. kann ja ok sein.
es ist nur der pfad falsch.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Problem mit Spring Boot Dependency Injection Java Basics - Anfänger-Themen 12
R Best Practice Problem mit (einfacher) Doppelt-Schleife Java Basics - Anfänger-Themen 53
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
C Regex-Problem Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
M Problem in der Modellierung Java Basics - Anfänger-Themen 20
W Wo ist das URL-Problem ? Java Basics - Anfänger-Themen 1
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
C Problem mit If Else If und Überprüfung eines Counters Java Basics - Anfänger-Themen 3
F Problem mit Listen Java Basics - Anfänger-Themen 5
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben