java textdatei bestimmte zeile schreiben

1 Antwort

Dein in.readLine() kann NULL zurückliefern. Achte darauf, dass du nur ein out.write() machst, wenn dein vorhandene_zeilen NICHT null ist.

ja ich möchte das die txtdatei so aussieht:

vorher:

1
2
3
4
5
6
7
8
9
10

nachher:

1
2
3
4
hallo zeile 5
6
7
8
9
10
0
@KnusperPudding

danke... die seite hat mir geholfen... es funktioniert...

das ist das was ich machen wollte :D

public static void writer(File file, int zeile, String text) throws IOException {
    int gelesenezeilen = 1;
    String s = "";
    File file2 = new File(System.getProperty("java.class.path")+"\\writer.txt");
    
    BufferedReader in = new BufferedReader(new FileReader(file));
    BufferedWriter out = new BufferedWriter (new FileWriter (file2));
    while ((s = in.readLine()) != null) {
        if(gelesenezeilen == zeile){
            out.write(text);
        }else{
            out.write(s);
        }
        out.newLine();
        out.flush();
        gelesenezeilen++;
    }
    in.close();
    out.close();
    


    s = "";
    BufferedReader in2 = new BufferedReader(new FileReader(file2));
    BufferedWriter out2 = new BufferedWriter (new FileWriter (file));
    while ((s = in2.readLine()) != null) {
        out2.write(s);
        out2.newLine();
        out2.flush();
    }
    in2.close();
    out2.close();
    
    file2.delete();
}
0

Woher kommt die Fehlermeldung : Exception in thread "main" java.lang.NullPointerException?

Ich wollte zum lernen des CSV- Formats eine einfache Übungsaufgabe in Eclipse schreiben aber ich bekomme die oben stehende Fehlermeldung. Woran kann das liegen ?

1   import java.io.File;
2   import java.io.FileWriter;
3   import java.io.IOException;
4
5   public class Main {         
6
7    public static void main(String[] args) {
8        FileWriter writer;
9        File datei = new File("soundso.txt");
10
11        try {
12            writer = new FileWriter(datei, true);
13            writer.write("ich bin eine Datei");
14            writer.write(System.getProperty("line.seperator"));
15
16            writer.flush();
17            writer.close();
18
19        } catch (IOException e) {
20            e.printStackTrace();
21          }
22
23      }
24
25  }
...zur Frage

Wie lerne ich Programmier-Basics?

Ich würde gerne mal ausprobieren zu programmieren, aber da es so viele verschiedene Sprachen gibt, bin ich etwas überfordert und weiß nicht direkt wo ich anfangen soll, vorallem weil ich zuerst noch die Basics lernen sollte. Wie kann ich das am besten machen? Oder soll ich gleich mit einer Sprache wie z.B Java beginnen? Gibt es dazu gute Youtube Kanäle oder Internet Seiten? Danke schonmal

...zur Frage

Wie funktioniert die Methode read(char[] cbuf) des FileWriters in Java?

Hi, kann mir wer die read() Methode der FileWriter class von java erklären? ich habe Folgenden code: public class FileStream {

public static void main(String[] args) throws IOException{
    
    File file = new File(FileStream.class.getResource("TextFile.txt").getFile());
    FileReader fReader = new FileReader(file);
    char[] c = new char[4];
    int i = 0;
    while((i = fReader.read(c))>= 0){
        System.out.println(c);
        System.out.println(i);
    }       
}

}

wenn sich in meinem TextFile.txt die Zahlen 1 bis 9 befinden und mein c array die länge 4 hat, gibt er mir aus: 1234 5678 9678 woher kommen die letzten drei ziffern 678? wie geht die read() methode in dem textdokument vor und warum hört sie nicht auf wenn sie am ende ist? ist der FileReader die beste Möglichkeit aus einem textFile den text auszulesen?

LG

...zur Frage

JAVA - wörterbuch nach länge sortieren lassen - Das System kann die angegebene Datei nicht finden

Hallo community :) so also ich habe nun ein TXT-Wörterbuch mit eingaben wie folgt:

Das

Dieser

rennen

und so weiter... ein wort pro zeile.

diese txt datei liegt im selben verzeichnis wie die jar datei. ausgegeben werden soll dann in 12 dateien, je nach wortlänge, im selben verzeichnis.

das ist ein einmaliges programm und ja ich bin ein Java.noob :P also bitte nicht über umständliche programmierung beschweren... ich habe bereits als pfad versucht: "wörterbuch" und "./wörterbuch" einen pfad wie "C:/..." möchte ich nicht, da sich der dateipfad ändern kann, der projektordner jedoch immer der selbe bleibt...

hier mein code bis jetzt:

package wörter.sortieren;

import java.io.*;
import java.util.Scanner;

/**
 *
 * @author Julian
 */
public class WörterSortieren {

    /**
 * @param args the command line arguments
 */
public static void main(String[] args) throws FileNotFoundException, IOException {

    String wort;
    int länge;

    //scanner erstellen
    Scanner scanner = new Scanner(new File("./wörterbuch.txt"));

    //writer erstellen
    BufferedWriter bw1 = new BufferedWriter(new FileWriter(new File("./worte1.txt")));
    BufferedWriter bw2 = new BufferedWriter(new FileWriter(new File("./worte2.txt")));
    BufferedWriter bw3 = new BufferedWriter(new FileWriter(new File("./worte3.txt")));
    BufferedWriter bw4 = new BufferedWriter(new FileWriter(new File("./worte4.txt")));
    BufferedWriter bw5 = new BufferedWriter(new FileWriter(new File("./worte5.txt")));
    BufferedWriter bw6 = new BufferedWriter(new FileWriter(new File("./orte6.txt")));
    BufferedWriter bw7 = new BufferedWriter(new FileWriter(new File("./worte7.txt")));
    BufferedWriter bw8 = new BufferedWriter(new FileWriter(new File("./worte8.txt")));
    BufferedWriter bw9 = new BufferedWriter(new FileWriter(new File("./worte9.txt")));
    BufferedWriter bw10 = new BufferedWriter(new FileWriter(new File("./worte10.txt")));
    BufferedWriter bw11 = new BufferedWriter(new FileWriter(new File("./worte11.txt")));
    BufferedWriter bw12 = new BufferedWriter(new FileWriter(new File("./worte12.txt")));



    while (scanner.hasNextLine()) {
        wort = scanner.nextLine();
        länge = wort.length();

        if (länge == 1) {
            bw1.write(wort);
            bw1.newLine();
        } else if (länge == 2) {
            bw2.write(wort);
            bw2.newLine();
        } else if (länge == 3) {
            bw3.write(wort);
            bw3.newLine();
        } else if (länge == 4) {
            bw4.write(wort);
            bw4.newLine();
        } else if (länge == 5) {
            bw5.write(wort);
            bw5.newLine();
        } else if (länge == 6) {
            bw6.write(wort);
...zur Frage

Java Dateien Kopieren

Halli Hallo!

Ich möchte ein Javaprogramm schreiben, dass mir eine Datei 1:1 kopiert. Also hab ich mir gedacht, ich bau mir einen Printstream zum schreiben und einen BufferedReader zum lesen. Soweit, sogut. Ich will aber jpg-Dateien kopieren. Ein kleines Testprogramm, um zu schauen, ob das überhaupt klappt, sieht so aus:

import java.io.*;
import java.net.*;

class PictureTest {
  public static void main(String arg[]) throws Exception {
    BufferedReader source = new BufferedReader(new InputStreamReader(new FileInputStream(new File("Zwischenablage01.jpg"))));
    PrintStream datei = new PrintStream(new FileOutputStream(new File("Teststrip.jpg")));
    String s = source.readLine();
    while (s != null) {
      datei.println(s);
      s = source.readLine();
    }
  }
}

Man sollte meinen, dass es jede Zeile, die es in source einliest, auch wieder über datei.println() ausgibt ... tut es aber nicht.

Wie kann man das lösen?

...zur Frage

Was möchtest Du wissen?