Advertisement
DearOohDeer

Pliki Binarne

Dec 18th, 2020 (edited)
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.23 KB | None | 0 0
  1. package zapis.pkgdo.binarnego;
  2.  
  3. import java.util.Scanner;
  4. import java.io.IOException;
  5. import java.io.RandomAccessFile;
  6. import java.nio.charset.StandardCharsets;
  7. import java.util.List;
  8. import java.util.Arrays;
  9.  
  10.  
  11. public class ZapisDoBinarnego {
  12.    
  13. public static void main(String[] args)
  14.     {
  15.         Scanner Nazwa_Pliku = new Scanner(System.in);
  16.         System.out.println("By program działał poprawnie: "
  17.                 +"\n    Upewnij się że plik jest w formacie.bin."
  18.                 +"\n    Imie musi byc w pierwszym miejscu nastepnie,nazwisko,pensja,wiek i puste miejsce na kredyt"
  19.                 +"\n    Po pustym miejscu na wpisania wartości maksymalnego kredytu nie może znaleźć się żaden znak biały");
  20.         System.out.println("Podaj nazwę pliku z formatem lub ścieżke bezwględną:");
  21.         System.out.println("Najwększą wartość Kredytu ma osoba: "+Kredyt_Max(Nazwa_Pliku.nextLine()));
  22.     }
  23.  
  24. public static boolean Czy_To_Numer(String str) {  //Sprawdzenie czy string jest liczbą
  25.         try
  26.         {
  27.             Double.parseDouble(str);
  28.             return true;
  29.         }
  30.         catch(NumberFormatException e)
  31.         {
  32.             return false;
  33.         }
  34.     }  
  35.  
  36. public static String Kredyt_Max(String Sciezka)
  37.     {
  38.         String Wersy_Pliku;
  39.         String Tekst;
  40.         String Pobrany_Tekst;
  41.         String Caly_Tekst = "";
  42.         String Osoba_Kredyt="";
  43.         float Pensja = 0, Kredyt = 0, Max_Kredyt=0;
  44.         int Wiek;
  45.         int Numer_Osoba = 1;
  46.         int Numer_Osoby_Z_Naj = 0;
  47.         List<String> Caly_Tekst_Array;
  48.  
  49.         try {
  50.                 RandomAccessFile file = new RandomAccessFile(Sciezka, "rw");
  51.                 while ((Tekst = file.readLine()) != null)
  52.                     {
  53.                         Pobrany_Tekst = new String(Tekst.getBytes(StandardCharsets.ISO_8859_1));
  54.                         if (Czy_To_Numer(Pobrany_Tekst))
  55.                         {
  56.                             if (Pensja != 0)
  57.                                 {
  58.                                 Wiek = Integer.parseInt(Pobrany_Tekst);
  59.                                 Kredyt = ((Pensja / 7) * (65 - Wiek));
  60.                                 Kredyt = Kredyt * 100;
  61.                                 Kredyt = (Math.round(Kredyt));
  62.                                 Kredyt = Kredyt / 100;
  63.                                 System.out.println("Maksymalny kredyt osoby " + Numer_Osoba + " to: " + Kredyt);
  64.                                 Caly_Tekst += Pobrany_Tekst + ";" + Kredyt + "";
  65.                                 Pensja = 0;
  66.                                 Numer_Osoba++;
  67.                                 if (Kredyt > Max_Kredyt)
  68.                                     {
  69.                                     Max_Kredyt = Kredyt;
  70.                                     Numer_Osoby_Z_Naj = Numer_Osoba;
  71.                                     }
  72.                                 continue;
  73.                                 }
  74.                             else
  75.                                 {
  76.                                 Pensja = Float.parseFloat(Tekst);
  77.                                 }
  78.                         }
  79.                         Caly_Tekst += Pobrany_Tekst + ";";
  80.                     }
  81.  
  82.                 //Usunięcie zawartosci pliku
  83.                 file.setLength(0);        
  84.                 Caly_Tekst_Array = Arrays.asList(Caly_Tekst.split(";"));
  85.                 Wersy_Pliku = Caly_Tekst.replaceAll("[^;]+", "");
  86.  
  87.                 //Wpisanie nowej zawartosci
  88.                 for (int i = 0; i < Wersy_Pliku.length() + 1; i++)
  89.                 {  
  90.                     file.writeBytes(Caly_Tekst_Array.get(i));
  91.                     file.writeBytes(System.getProperty("line.separator"));
  92.                 }
  93.                 int Imie_Index = Caly_Tekst_Array.indexOf(String.valueOf(Max_Kredyt))-4;
  94.                 int Nazwisko_Index = Caly_Tekst_Array.indexOf(String.valueOf(Max_Kredyt))-3;
  95.                 Osoba_Kredyt = Numer_Osoby_Z_Naj + ". Nazywajaca sie " + Caly_Tekst_Array.get(Imie_Index)+" "+Caly_Tekst_Array.get(Nazwisko_Index)+".";
  96.             } catch (IOException e)
  97.                 {
  98.                 System.err.println("wystapil blad");
  99.                 }
  100.             return Osoba_Kredyt;
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement