Die Letzte Zahl aus einer Text datei lesen

Jay_LP_

Aktives Mitglied
Hallo,

ich wollte fragen ob und wie ich die letzt Zahl aus einer .txt datei heraus nehmen kann und weiter damit arbeiten kann. Danke im Vorraus
 
Um was für eine Zahl handelt es sich und wodurch wird sie von den vorherigen Zahlen getrennt? Ganzzahl? Mit oder ohne Vorzeichen?
 
Also ich fang von vorne an. Ich möchte ein Programm machen wo man schulden berechnen kann. Und zwar das man eine Anfangszahl hat und dann immer wenn man das Programm startet, das er fragt wie viel man abrechnen will. Und diese Antworten sollen in einer txt datei als Protokoll gespeichert werden. Nun hatte ich das Problem das ich es nicht hingekriegt habe das sich die Anfangszahl mit verändert wenn man was minus nimmt,, deswegen wollte ich das speichern der anfangsvariable über die txt datei machen
 
Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Main {
    
    public Main() {
        
        File folder1 = new File("ordner");
        File file1 = new File("ordner/Protokoll.txt");
        
        double answer;
        double anfangswert;
        boolean check = false;
        
        if(folder1.exists()) {
            System.out.println("Ordner existiert");
        }else {
            folder1.mkdirs();
            System.out.println("Ordner wird erstellt");
        }
        
        if(file1.exists()) {
            System.out.println("Datei existiert");
        }else {
            try {
                file1.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        
        try {
            Scanner sc = new Scanner(file1);
            
            while(sc.hasNext()) {
                System.out.print(sc.next() + " ");
                
            }
            System.out.println("");
            sc.close();
            
        } catch (FileNotFoundException e) {
            System.out.println("Datei ist nicht da");
            e.printStackTrace();
        }
        
        
        try {
            OutputStream stream = new FileOutputStream(file1);
            
            String textinhalt = "";
            
            try {
                stream.write(textinhalt.getBytes());
                stream.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        } catch (FileNotFoundException e) {
            System.out.println("Datei gibt es nicht");
            e.printStackTrace();
        }
        
        while(check == false) {
            
            System.out.print("Was ist ihr Standardwert: ");
            Scanner a = new Scanner(System.in);
            answer = a.nextInt();
            
            if(answer > 0) {
                System.out.println("Ok der Standardwert wir auf " + answer + " gesetzt");
                anfangswert = answer;
                check = true;
                try {
                    OutputStream stream = new FileOutputStream(file1);
                    stream.write(anfangswert);
                    stream.close();
                    
                    
                    
                } catch (FileNotFoundException e) {
                    System.out.println("Datei gibt es nicht");
                    e.printStackTrace();
                }
            }else {
                System.out.println("Es kann keine Zahl unter 0 sein oder Buchstaben");
            }
            }
        
    }


    public static void main(String[] args) {
        
        
        
        
        
        Date currentlyDate = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
        String formattedDate =sdf.format(currentlyDate);
        
        System.out.println(formattedDate);
        
        Date currentlyDate1 = new Date();
        SimpleDateFormat adf = new SimpleDateFormat("HH.mm.ss");
        String formattedDate1 =adf.format(currentlyDate1);
        
        System.out.println(formattedDate1);
        
        
        new Main();
        
        
        
        
        
    }
    

}

Das ist mein Code
 
Du liest doch eh schon alles ein:
Java:
        String letzteZahl = null;
        try {
            Scanner sc = new Scanner(file1);
            
            while(sc.hasNext()) {
                letzteZahl = sc.next();
                System.out.print(letzteZahl + " ");
                
            }
            System.out.println("");
            sc.close();            
        } catch (FileNotFoundException e) {
            System.out.println("Datei ist nicht da");
            e.printStackTrace();
        }
        // hier ist letzteZahl die letzte gelesene Zahl oder null, falls nichts gelesen wurde.
 
Ersetze in Deinem Code
Java:
        try {
            Scanner sc = new Scanner(file1);
            
            while(sc.hasNext()) {
                System.out.print(sc.next() + " ");
                
            }
            System.out.println("");
            sc.close();
            
        } catch (FileNotFoundException e) {
            System.out.println("Datei ist nicht da");
            e.printStackTrace();
        }
durch den Code aus Kommentar #5
 
Ja, Du schreibst die Zahl als Byte binär raus:

Java:
stream.write(anfangswert);

Mach mal
Java:
stream.write(Double.toString(anfangswert) + "\n"));
draus.
 

Neue Themen


Zurück
Oben