Witam chce zrobić statystyki w javie które zapisują się w pliku statystyki.txt
problem polega na tym że nie wiem jak dodać np 20 punktów do startowej liczby 0
Proszę o pomoc
Pozdrawiam
A co już zrobiłeś?
zrobiłem odczyt oraz zapis pliku tekstowego problem w tym że nie wiem jak dodać np 20 puntrów do statystyk
na logike powinienem odczytać wartość 2 lini w której są statystyki i dodać 20 dobrze myślę ?
jak takie coś zrobić:> ?
Dobrze rozumiem, że na początku chcesz mieć w swoim pliku tekstowym np wartość początkową - tutaj 0. A następnie gdy chcesz dodawać statystykę to nowa wartość np 20 ma się pojawić w nowej linijce? Daj kod bo nie kumam o co Ci chodzi.
EDIT: Czy chcesz po prostu pierwszą wartość czyli zero zamienić na 20?
Dobrze rozumiem, że na początku chcesz mieć w swoim pliku tekstowym np wartość początkową - tutaj 0. A następnie gdy chcesz dodawać statystykę to nowa wartość np 20 ma się pojawić w nowej linijce? Daj kod bo nie kumam o co Ci chodzi.
zapisywanie w pliku :
PrintWriter class1ucz1 = new PrintWriter("data/class1/kl1ucz1.txt");
class1ucz1.println("Adam");
class1ucz1.println(2);
class1ucz1.println(0);
class1ucz1.println(0);
class1ucz1.close();
odczytu nie podaje nie widze sensu :>
dodawanie punktów
public void dodaj(){
FileInputStream fin = null;
try{
fin = new FileInputStream("data/class3/kl3ucz3.txt");
}catch(FileNotFoundException e){
System.out.print("File not found" + e);
System.exit(-1);
}
BufferedReader reader = new BufferedReader(new InputStreamReader(fin));
try{
//tutaj wlasnie mam problem nie wiem jak odczytac wartosc do zmiennej
int a = reader.readLine(2);
}catch(IOException e){
System.out.print("Error input/output");
}
}
chce dodać do tej wartości w tym przypadku 0 20 a potem podmienić
Wstawiaj kod w znaczniki <code class="java"></code>
.
Nie rozumiem o co Ci chodzi, piszesz
odczytu nie podaje nie widze sensu :>
dodawanie punktów
a potem umieszczasz kod odczytujący.
Scanner scanner = new Scanner(new File(nazwaPliku));
String firstName = scanner.nextLine();
int points = scanner.nextInt():
scanner.close();
Aby zwiększyć wartość zapisaną w pliku to masz kilka sposobów, najpopularniejszy z nich:
- Odczytać plik przynajmniej od miejsca zapisu (ale łatwiej cały)
- Zwiększyć wartość w pamięci.
- Ponownie zapisać już z nową wartością.
Owszem są wyjątki, np jeżeli masz zagwarantowane że nowa wartość ma taką samą długość co stara, wtedy wystarczy wiedzieć (lub znaleźć) gdzie w pliku zapisana ta wartość i ją podmienić.
Można to zagwarantowane sobie ułatwić zapisując z poprzedzającymi zerami, np 0 = 000000000 zaś 123 = 000000123 wtedy prawie do miliona masz tą samą długość.
Trzeci sposób polega na tym że wczytujemy wiersz po wierszu czy daną po danej i natychmiast zapisujemy do innego pliku.
Jak docieramy do potrzebnej zmiennej zwiększamy ja i w tej postaci piszemy do tego innego pliku.
Po znalezionej zmiennej resztę przepisujemy jak jest do tegoż innego pliku.
Po całej operacji usuwamy oryginalny plik i zmieniamy nazwę "innego pliku".
bogdans napisał(a):
Wstawiaj kod w znaczniki
<code class="java"></code>
.
Nie rozumiem o co Ci chodzi, piszeszodczytu nie podaje nie widze sensu :>
dodawanie punktów
a potem umieszczasz kod odczytujący.
Scanner scanner = new Scanner(new File(nazwaPliku));
String firstName = scanner.nextLine();
int points = scanner.nextInt():
scanner.close();
Sorki że tak chaotycznie napisałem
chce zrobićstatystyki dla usera w których będą poprawne odpowiedzi złe odpowiedzi i punkty chciałbym miećto w funkcji
public void dodaj() aby ta funkcja dodawała punkty i poprawne odpowiedzi oraz
public void zleodp(){
zeby funkcja dodawala zle odpowiedzi
oraz zapisywała do pliku txt
Zlicz wszystko w pamięci o czym zapisz cały plik.