Zum Inhalt springen

Devinius

Mitglieder
  • Gesamte Inhalte

    34
  • Benutzer seit

  • Letzter Besuch

Beiträge von Devinius

  1. Hallo!

    Ich spiele grad ein wenig mit Java und war jetzt bei Dateien lesen/schreiben angekommen.

    Also wollte ich einen kleinen Editor in der Konsole schreiben. Es soll einfach die Datei lesen, den aktuellen Inhalt ausgeben und einen neuen speichern.

    Damit ich ein wenig übe habe ich alles in Klassen unterteilt: Die Main Klasse, eine Editor und eine FileHandler Klasse.

    Das öffnen geht soweit, nur gibt er leider eine NullPointerExp. zurück, wenn es um die Ausgabe geht.

    Hier erst einmal der Quellcode:

    Main

    
    import java.io.IOException;
    
    
    
    public class Main {
    
    
    	/**
    
    	 * @param args
    
    	 * @throws IOException 
    
    	 */
    
    	public static void main(String[] args) throws IOException {
    
    		new Editor();
    
    	}
    
    
    }
    
    
    Editor
    
    import java.io.IOException;
    
    import java.util.Scanner;
    
    
    
    public class Editor {
    
    
    	private String filename = "";
    
    	private String filepath = "";
    
    	private String newContent = "";
    
    
    	public Editor() throws IOException
    
    	{
    
    		Scanner scanner = new Scanner(System.in);
    
    		System.out.println("In welchem Ordner liegt die Datei? (leer lassen für Standard)");
    
    		this.filepath = scanner.nextLine();
    
    		System.out.println("Wie ist der Name der Datei?");
    
    		this.filename = scanner.nextLine();
    
    
    		FileHandler fh = new FileHandler(this.filepath, this.filename);
    
    		System.out.println("Datei geöffnet, aktueller Inhalt: ");
    
    
    			for (String zeile : fh.getFilecontent()) {
    
    				System.out.println(zeile);
    
    			}
    
    	}
    
    
    }
    
    
    FileHandler
    
    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.util.ArrayList;
    
    
    
    public class FileHandler {
    
    
    	private String filename = "";
    
    	private String filepath = "";
    
    	private ArrayList<String> filecontent;
    
    
    	public FileHandler(String filepathToOpen, String filenameToOpen) throws IOException
    
    	{
    
    		this.filename = filenameToOpen;
    
    		this.filepath = filepathToOpen;
    
    		this.openFile();
    
    	}
    
    
    	private void openFile() throws IOException
    
    	{
    
    		String zeile = "";
    
    		try
    
    		{
    
    			FileReader filereader = new FileReader(this.filepath + this.filename);
    
    			BufferedReader br = new BufferedReader(filereader);
    
    			do
    
    			{
    
    				zeile = br.readLine();
    
    
    				try
    
    				{
    
    					System.out.println(zeile);
    
    					this.filecontent.add(zeile);
    
    				}
    
    				catch (Exception ex)
    
    				{
    
    
    				}
    
    			} while (zeile != null);
    
    		}
    
    		catch (FileNotFoundException ex)
    
    		{
    
    			System.err.println(ex);
    
    		}
    
    	}
    
    
    	public ArrayList<String> getFilecontent() {
    
    		return filecontent;
    
    	}
    
    
    	public void setFilecontent(ArrayList<String> filecontent) {
    
    		this.filecontent = filecontent;
    
    	}
    
    
    	public boolean saveFile() throws IOException
    
    	{
    
    		File datei = new File(this.filepath + this.filename);
    
    		FileWriter fw = new FileWriter(datei, true);
    
    
    		for (String line : this.filecontent) {
    
    			fw.write(line);
    
    		}
    
    
    
    		return true;
    
    	}
    
    
    }
    In der Textdatei steht einfach nur:
    Hallo Welt
    Die Konsolenausgabe sieht wie folgt aus:
    In welchem Ordner liegt die Datei? C:\Users\alexander\workspace_Tutorial\MiniFileEditorConsole\ Wie ist der Name der Datei? text.txt Datei geöffnet, aktueller Inhalt: Exception in thread "main" java.lang.NullPointerException at Editor.<init>(Editor.java:22) at Main.main(Main.java:11)
    Die Zeile 22 in der Editor.java ist die folgende:
    
    for (String zeile : fh.getFilecontent()) {
    
    

    Da ich in der FileHandler eigentlich auf NULL prüfe, bevor ich die Daten speichere, wundere ich mich, dass diese Meldung kommt.

    Allgemein: Da ich Anfänger bin, bin ich auch über jedes Kommentar bezüglich des Programmierstiles dankbar.

    Einen schönen Freitag wünscht

    Alex

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...