Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich möchte eine methode, die alle möglichen datentypen einliest. Allerdings gibt es da ein Problem. Ich habe diese Methode bis jetzt nur für Textdateien geschrieben. Und nun möchte ich, wie gesagt, dass alle datentypen eingelesen werden können.
Als return wert soll es aber ein String bleiben. Wie muss ich das abändern?
Java:
public String readFile(String fileName){
String F = fileName;
String P = "";
try{
Scanner sc = new Scanner(new File(F));
P = sc.next();
while (sc.hasNextLine()) {
sc.nextLine();
P= P+sc.next();
}
sc.close();
}
catch (FileNotFoundException e) {
System.out.println("File not found: "+fileName);}
return P;
}
nun mein zweites Problem. Bei einem Leerzeichen bricht der Stream ab und liest nicht mehr weiter. Wie kann ich das Problem beheben. ich will dass es die Leerzeichen nicht mit einliest sondern weiter liest.
ich möchte eine methode, die alle möglichen datentypen einliest. Allerdings gibt es da ein Problem. Ich habe diese Methode bis jetzt nur für Textdateien geschrieben. Und nun möchte ich, wie gesagt, dass alle datentypen eingelesen werden können.
Als return wert soll es aber ein String bleiben. Wie muss ich das abändern?
Ich will das alle Dateitypen eingelesen werden können, also .txt, .pdf, .xml, .xls, .....
zum zweiten Punkt: kannste mir mal mit kurzen Quellcode zeigen wie ich das machen muss, weil ich nicht weiß wie man aus einem String ein Leerzeichen erkennt und das ausliest
ok anders formuliert.
Ich brauche eine Methode, die alle möglichen Dateitypen ausliest. am besten in einen String packt, aber auch andere Datentypen sind möglich.
Kann auch als irgendein Object von einem Datentyp ausgelesen werden.
Wichtig ist nur, dass jeder Dateityp ausgelesen wird. Kannste mit da vlt. mit etwas Quellcode helfen
zum zweiten Punkt: kannste mir mal mit kurzen Quellcode zeigen wie ich das machen muss, weil ich nicht weiß wie man aus einem String ein Leerzeichen erkennt und das ausliest
...
String s = ...; // Eine Zeile aus Datei einlesen
String sNeu = "";
for (int i=0; i < s.length; ++i)
if (s.charAt(i) != ' ')
sNeu += s.charAt(i);
s = sNeu;
...
Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1347)
at HVES.readFile(HVES.java:975)
weils ab java 1.5 (oder so) egal ist und der compiler so und so StringBxxx (welchen auch immer) dir reinhaut ;-)
Blick in die API hilft:
A simple text scanner which can parse primitive types and strings using regular expressions.
A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace.
Fragen wir doch mal anders: Was hast du denn mit den eingelesenen Daten vor? U.U. ist es vielleicht sogar geschickt direkt einen InputStream zurück zu liefern.
damit meine ich, dass die datei nur eingelesen werden soll und als string zurückgegeben. wäre super, wenn mir jemand mal code schreibt wie ich das am besten einlese
versteh nicht so recht dein bsp... meine Aussage ist dass der compiler mittlerweile aus dem beliebten [c]"s1" + "s2"[/c] einen StringBuillder mit append baut.
damit meine ich, dass die datei nur eingelesen werden soll und als string zurückgegeben. wäre super, wenn mir jemand mal code schreibt wie ich das am besten einlese
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader();
String s = "";
do {
s = br.readLine();
if (s != null)
sb.append(s);
} while (s != null);
s = sb.toString();
ich habe hier eine writeFile Methode, mit der ich eine datei schreiben will.
Alerdings soll nicht wie hier eine Text-Datei geschrieben werden, sondern eine datei mit dem dateityp von der eingelesenen datei. was muss ich da ändern, oder wie kann ich das schreiben?
Java:
public void writeFiles(String text, String directory) {
String fileName = directory+".txt";
String t = text;
try {
BufferedWriter out = new BufferedWriter(new FileWriter(fileName));
out.write(t);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}