Skocz do zawartości

Wykryliśmy, że używasz AdBlocka  :emo_im_sad:

Proszę, dodaj nas do wyjątków:) Wyświetlamy jedynie ładne, idealnie dopasowane reklamy - żadnych wyskakujących okienek czy wideo! Reklamy to jedyne źródło utrzymania naszej społeczności.

Kliknij tutaj, aby dowiedzieć się jak to zrobić. Dziękujemy!

Dobrze znasz WordPressa? Czytaj więcej.. ×
Ebugogo

Zapis do pliku *.txt linia po linii

    Rekomendowane odpowiedzi

    Witam, mam taki kod do zapisu stringa w pliku txt

                                            File file = new File (path + "/readings.txt");
    
                                            String [] saveText = String.valueOf(newString[1]).split(System.getProperty("line.separator"));
    
                                            Toast.makeText(getApplicationContext(), "Saved", Toast.LENGTH_LONG).show();
    
                                            Save (file, saveText );

    Do tego jest funkcja do zapisu

        public static void Save(File file, String[] data)
        {
            FileOutputStream fos = null;
            try
            {
                fos = new FileOutputStream(file);
            }
            catch (FileNotFoundException e) {e.printStackTrace();}
            try
            {
                try
                {
                    for (int i = 0; i<data.length; i++)
                    {
                        fos.write(data[i].getBytes());
    
                        if (i < data.length-1)
                        {
    
                           fos.write("\n".getBytes());
    
    
    
                        }
                    }
                }
                catch (IOException e) {e.printStackTrace();}
            }
            finally
            {
                try
                {
                    fos.close();
                }
                catch (IOException e) {e.printStackTrace();}
            }
        }

    Problem jest taki kod działa i zapisuje do pliku zawartość stringa newString[1] , ale za każdym razem nadpisuje starą zawartość.

    Chciałbym żeby dopisywał kolejne linie robił słupek.  Niestety nie wiem co jest nie tak, pozdrawiam

     

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    try {
        Files.write(Paths.get("fajny_plik.txt"), "fajniejszy tekst".getBytes(), StandardOpenOption.APPEND);
    }catch (IOException e) {
        //obsługa błędu tutaj ;)
    }

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mmaciejow
    Napisano (edytowane)

    Na początku zrób warunek w którym sprawdzasz czy plik istnieje jeśli tak to go otwierasz i dopisujesz, a jeśli nie istnieje to go tworzysz tak jak napisałeś. 

    File file = new File(filePath);
    if(file.exists())      
    // dopisujemy
    else
    // tworzymy nowy plik

     

    Edytowane przez mmaciejow

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
                                               File file = new File (path + "/readings.txt");
    
                                                if(file.exists()){
    
                                                    String[] saveText = String.valueOf(newString[1]).split(System.getProperty("line.separator"));
    
                                                    Toast.makeText(getApplicationContext(), "Saved", Toast.LENGTH_LONG).show();
    
                                                    Save(file, saveText);
    
                                                }else{
    
                                                  
    
                                                }

    Dzięki zrobilem jak wyżej ale dalej nadpisuje.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    20 godzin temu, Coders Lab napisał:

    @Ebugogo jak tam? Udało się rozwiązać problem? :) 

    Siema, tak ale zastosowałem zupełnie inny kod, kod z 1 postu ciągle nadpisywał. Pozdrawiam

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    ×