Input & Output Problem

E

Essener24434

Gast
Hallo Leute,

ich muss eine Anwendung programmieren, die folgendermaßen abläuft:
Die Anwendung soll als erstes nach einem Texteditor im Verzeichnis suchen und wenn die Datei da ist, soll sie gelesen werden. Falls keine vorhanden ist, soll eine neue Textdatei erstellt werden. In der neuen Datei sollte man dann mittels Konsole etwas hineinschreiben können und beliebig verändert werden. Dabei soll der Datei Sätze HINZUGEFÜGT werden und nicht überschrieben werden.

Momentan habe ich bisher das hin bekommen. Es sucht nach einer Datei und falls sie da ist, liest er sie und es kommt in die Console. Wie muss ich nun weiter machen? Muss ich nach dem try eine If - Bedingung erstellen ? Und falls ja, was schreibe ich in die Klammern von If. Hoffe ihr könnt mir helfen.

Java:
package File;

  import java.io.*;
  public class IO {
    public static void main (String args[]) {
      String zeile="";

      try {
        BufferedReader b = new BufferedReader (new FileReader("c:/IO/test.txt") );
        while( (zeile = b.readLine()) != null ) { // liest zeilenweise aus Datei
          System.out.println(zeile);              // Ausgabe zeilenweise
        }
        b.close();
      }
      catch (IOException e) {
        System.out.println("Fehler: "+e.toString());
      }
		}
  }
 

VfL_Freak

Top Contributor
Moin,

mal vorab: ich würde die eigene Klasse NIE "IO" nennen !!

Die Anwendung soll als erstes nach einem Texteditor im Verzeichnis suchen
Du suchst nach einen "Texteditor" ???:L

Es sucht nach einer Datei und falls sie da ist ...
Na ja, nicht wirklich. Du suchst nicht, sondern versuchst einfach zu lesen und bekommst bei Nichtexistenz stumpf eine Exception - nicht die ferine englische Art ;)

Du könntest die Existenz etwas so prüfen:
Java:
String strFile = ... // der Dateiname
File f = new File( strFile.toString() );
if ( !f.exists() ) 
...

// Du könntest  zuvor noch die Existenz des Pfades prüfen !
String strPfad = ... // der gesuchte Pfad
File fDir = new File(strPfad);
// falls angegebenes DIR nicht ex. --> erstellen 
if ( !fDir.exists() ) 
...

Zum wahlfreien lesen und Schreiben der Textdatei soll Dir dieses Stichwort helfen: RandomAccessFile

Gruß
Klaus
 
E

Essener24434

Gast
Danke erstmal für deine Antwort.
Ich habe deine Lösung ausprobiert, doch beim Ausführen zeigt mir die Console einen Fehler an.
Hier der Code:
Java:
package File;

import java.io.File;

public class NewMain3
{

	private static String c;

	public static void main(String[] args)
	{
		String strFile = test.txt;  // der Dateiname
		File f = new File(strFile.toString());
		if (!f.exists())
		{
		}


		String strPfad = ("c:/test.txt"); // der gesuchte Pfad
		File fDir = new File(strPfad);
		if (!fDir.exists())
		{
		}
	}
}

Und hier die Fehlermeldung:

Exception in thread "main" java.lang.NullPointerException
at File.NewMain3.main(NewMain3.java:23)
Java Result: 1
ERSTELLEN ERFOLGREICH (Gesamtzeit: 0 Minuten 0 Sekunden)
 

VfL_Freak

Top Contributor
Moin,

Ich habe deine Lösung ausprobiert, doch beim Ausführen zeigt mir die Console einen Fehler an.

Was soll denn Deiner Meinung nach test.txt sein ???
Du musst schon einen String erstellen !!
Java:
String strFile = test.txt;  // FALSCH !!

// etwa so 
String strFileName ="c:/test.txt";


nein, dies hier ist nicht der Pfad, sondern Pfad PLUS Dateiname
Java:
String strPfad = ("c:/test.txt"); // der gesuchte Pfad
File fDir = new File(strPfad);
if (!fDir.exists())
{
}

doch wohl eher so:
Java:
String strPfad = "c:/meinPfad"; // der gesuchte Pfad - die Klammern sind hier überflüssig !
File fDir = new File(strPfad);
if (!fDir.exists())
{
}

Außerdem fehlt hinter den if-Anweisungen der Code, den Du ausführen möchstest, wenn Pfad oder Datei nicht existieren - bspw.:
Java:
if ( !fDir.exists() ) 
{
    // "mkdirs" erzeugt auch alle Unterverzeichnisse!!
    fDir.mkdirs();
} /* if */

// falls die angegebene Datei nicht ex. --> erstellen 
File f = new File( strFile.toString() );
if ( !f.exists() ) 
{
	try
        {
	     f.createNewFile();
        }
}

Gruß
Klaus
 

VfL_Freak

Top Contributor
Moin
das is nich dein ernst oder ? String.toString() ... zum trollen mags ja witzig sein ... aber viel schlimmer das es so direkt auch noch übernommen wurde
nein - da hast Du ausnahmsweise mal recht ... das ist nicht mein Ernst ;)
Mea maxima culpa :autsch:

Hatte das nur auf Schnelle reinkopiert, da ich gerade eine entsprechende Source offen hatte.
strFile ist bei mir natürlich kein String sondern weiter vorher als StringBuilder deklariert!!

Richtig ist also:
Java:
// falls die angegebene Datei nicht ex. --> erstellen 
File f = new File( strFile );
if ( !f.exists() ) 
{
    try
        {
         f.createNewFile();
        }
}

Gruß
Klaus
 
E

Essener24434

Gast
Vielen, vielen Dank euch beiden!
Ich bin jetzt soweit gekommen, dass die Anwendung ein neues Textdokument erstellt, falls kein vorhanden ist. Nun wollte ich noch, dass ein Text rein gesetzt wird. Mein Code sieht bisher so aus:
Java:
package File;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class NewMain3
{

	private static String c;

	public static void main(String[] args) throws FileNotFoundException, IOException
	{
		String zeile = "";
		String strFile = "c:/test.txt";  // der Dateiname
		File f = new File(strFile.toString());
		if (!f.exists())
		{
			try
			{
				BufferedReader b = new BufferedReader(new FileReader("c:/test.txt"));
				while ((zeile = b.readLine()) != null)
				{ // liest zeilenweise aus Datei
					System.out.println(zeile);              // Ausgabe zeilenweise
				}
				b.close();
			} catch (IOException e)
			{
				System.out.println("Fehler: " + e.toString());
			}
		}


		String strPfad = "c:/"; // der gesuchte Pfad
		File o = new File(strFile.toString());
		if (!f.exists())
		{
			try
			{
				f.createNewFile();
			} catch (IOException e)
			{
				e.printStackTrace();
			}
		}

		// Dieser Teil wird nicht ausgeführt ?
		FileWriter fw = null;
		try
		{
			String value = "Das steht am Anfang";
			PrintWriter writer = new PrintWriter(new File("D:/testFile.txt"));

			writer.write(value);

			writer.append("\nDas steht am Ende");

			writer.close();


		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
O Input/Output newbile und keine Ahnung! Java Basics - Anfänger-Themen 16
GoldenShadow Input/Output Verschiedene Versionen von Input/Output Java Basics - Anfänger-Themen 3
O OOP Input & Output in der GUI-Programmierung Java Basics - Anfänger-Themen 2
C Input & Output Frage Java Basics - Anfänger-Themen 4
S Input/Output Data-Input/Output-Stream Java Basics - Anfänger-Themen 2
M Output Input im Cmd Fenster Java Basics - Anfänger-Themen 7
D Input Output Java Basics - Anfänger-Themen 8
N Verschiedene Input/Output Klassen Java Basics - Anfänger-Themen 3
L StdIn Stdout / Input Output Aufgabe Java Basics - Anfänger-Themen 3
M Input/Output Stream aus einem String Java Basics - Anfänger-Themen 2
J File Input/Output und Applet Java Basics - Anfänger-Themen 2
M Scanner Input mit if überprüfen Java Basics - Anfänger-Themen 5
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
JD_1998 Vektorrechner; User Input -> Index out of bounds Java Basics - Anfänger-Themen 3
I Array übernimmt immer den letzten Input. Java Basics - Anfänger-Themen 14
L Wie Input auf verschiedene Kriterien hin überprüfen? Java Basics - Anfänger-Themen 3
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
J Sharing Audio input Java Basics - Anfänger-Themen 6
steven789hjk543 Input mit if-else Java Basics - Anfänger-Themen 23
D [AES] input not multiple of 16 Java Basics - Anfänger-Themen 2
J Input/Output Input als Parameter an Methoden übergeben Java Basics - Anfänger-Themen 23
J Input-Variable nicht sichtbar Java Basics - Anfänger-Themen 2
T '>' vor Console input Java Basics - Anfänger-Themen 3
J Input/Output Input Buttons Html mit JSP Java Basics - Anfänger-Themen 3
C Wie kann ich einen User Input mit einer If-Anweisung verbinden? Java Basics - Anfänger-Themen 5
S Tastatur input lesen Java Basics - Anfänger-Themen 7
I Datentypen input.nextCharAt(0) wirft einen Fehler Java Basics - Anfänger-Themen 3
J Input/Output Scanner Input als etwas einsetzen Java Basics - Anfänger-Themen 3
H Methode mit späterem Input Java Basics - Anfänger-Themen 3
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
T Java Input Java Basics - Anfänger-Themen 6
S LinkedList mit Input vergleichen. Java Basics - Anfänger-Themen 5
A Input/Output Input eingabe in unicode übersetzen Java Basics - Anfänger-Themen 3
N Input/Output Wenn kein Input, dann Fehler anzeigen lassen im JFrame Java Basics - Anfänger-Themen 6
L JTextField/Listener Input Problem Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
A Input/Output Input überprüfen und weiterverarbeiten Java Basics - Anfänger-Themen 10
R User Input wird übersprungen?! Java Basics - Anfänger-Themen 17
C Vector erzeugt neue Indizes nach Input Java Basics - Anfänger-Themen 2
B do while (input = zahl) Java Basics - Anfänger-Themen 6
H Text ausdrucken, den ich entweder direkt in die Kommandozeile schreibe, oder über input redirect übe Java Basics - Anfänger-Themen 2
M Kontaktbuch - Probleme beim Input Java Basics - Anfänger-Themen 3
S Input (Blutiger Anfänger) Java Basics - Anfänger-Themen 18
P HTML <input> Feld in einem JLabel auslesen Java Basics - Anfänger-Themen 4
A HSSFWorkbook als Return-Wert für Input in andere Methode Java Basics - Anfänger-Themen 5
S Arrays - Fehler bei der Verarbeitung: For input string: "Berlin" Java Basics - Anfänger-Themen 14
B NumberFormatException: For input string: "" Java Basics - Anfänger-Themen 4
C OOP Java Projekt Bankautomat input fehler Java Basics - Anfänger-Themen 14
Spin IllegalArgumentException Input == null Java Basics - Anfänger-Themen 7
N Probleme mit Input/OutputStreams, Daten im Speicher verwalte Java Basics - Anfänger-Themen 2
D Input Scanner Java Basics - Anfänger-Themen 9
F Java login & input (html). Java Basics - Anfänger-Themen 4
F Verwenden von Input innerhalb eines Applets Java Basics - Anfänger-Themen 3
G Input Dialog Problem Java Basics - Anfänger-Themen 11
F Input kann nicht verglichen werden Java Basics - Anfänger-Themen 6
emreiu Formatiertes Output bei Insertion Sort Java Basics - Anfänger-Themen 6
Kotelettklopfer Output korrekt trotz falschem Lösungsweg !? Java Basics - Anfänger-Themen 99
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
B Output Java Basics - Anfänger-Themen 1
K output Java Basics - Anfänger-Themen 3
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
E 2 Matrizen multiplizieren - Output fehlt... Java Basics - Anfänger-Themen 5
A Input/Output Prozess Output genauso in der Konsole ausgeben Java Basics - Anfänger-Themen 0
J Input/Output Den zweiten Output erst nach Eingabe ausgeben Java Basics - Anfänger-Themen 4
A Erste Schritte Java Output wird nicht angezeigt Java Basics - Anfänger-Themen 7
K cmd output.txt Java Basics - Anfänger-Themen 5
T Output in CMD anzeigen lassen? Java Basics - Anfänger-Themen 1
D Runtime exec output wiedergeben Java Basics - Anfänger-Themen 1
B Input/Output output Datenstrom filtern Java Basics - Anfänger-Themen 0
J Möchte gern den Konsolen Output auf JTextPane umleiten Java Basics - Anfänger-Themen 4
fLooojava Output in einer Textarea einfärben Java Basics - Anfänger-Themen 7
fLooojava OOP Übergabe/Output in Textfield Java Basics - Anfänger-Themen 4
E Input/Output convert string to two dimensional char and output = matrix Java Basics - Anfänger-Themen 2
S Output Problem Java Basics - Anfänger-Themen 2
F Input/Output Falsches Output in Datei! Java Basics - Anfänger-Themen 4
G Output aus fremden Klasse auswerten Java Basics - Anfänger-Themen 8
C Input/Output Dynamischer Output von Arrays Java Basics - Anfänger-Themen 3
P Windows vs. Ubuntu verschiedener Output Java Basics - Anfänger-Themen 31
L Output mit zwei ungleichen Strings Java Basics - Anfänger-Themen 17
B In- und Output von XML-Daten in und aus einem Objekt Java Basics - Anfänger-Themen 6
M Input/Output JAXB XML Output von Objekt-Listen? Java Basics - Anfänger-Themen 2
S Compiler-Fehler see the compiler error output Java Basics - Anfänger-Themen 6
B Threads Methoden mit Output in Threads verpacken Java Basics - Anfänger-Themen 4
A Input/Output Taskmanager Output Java Basics - Anfänger-Themen 2
T Objekt Output zu String Array Java Basics - Anfänger-Themen 4
T Output in File funktioniert nicht Java Basics - Anfänger-Themen 3
B Limit console output in Eclipse Java Basics - Anfänger-Themen 6
T Java Output File Gliedern Java Basics - Anfänger-Themen 5
P Output einer anderen Anwendung verwenden Java Basics - Anfänger-Themen 7
G Output Fehler. Java Basics - Anfänger-Themen 20
J IO Frage Hex-Output - Anfängerfrage Java Basics - Anfänger-Themen 5
M Datei Output als Append Java Basics - Anfänger-Themen 3
B Output window grabben? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben