• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

błąd w zapisie pliku do tablicy java

Object Storage Arubacloud
0 głosów
456 wizyt
pytanie zadane 26 listopada 2018 w Java przez mn130496 Gaduła (3,530 p.)

Witam

jakiś czas temu zacząłem się uczyć języka java i na zajęciach dostałem zadanie o treści: Zmodyfikuj plik z zadania 4, wczytaj wszystkie wartości z pliku do tablicy. W zadaniu 4 chodziło o to , żeby utworzyć tablicę 10x10 , wypełnić ją losowymi wartościami i zapisać ją do pliku.Do zadania 5 napisałem następujący kod programu:

package lab6;
import java.util.Random;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;
public class zad5 {
	public static void main(String[] args)throws IOException {
		//deklaracja tablicy i metody losującej.
		int[][] zapis = new int[10][10];
		String[][] odczyt = new String[10][10];
		Random losuj = new Random();
		//zapełnienie tablicy zapis.
		for(int i=0; i<zapis.length; i++) {
			for(int j=0; j<zapis.length; j++) {
				zapis[i][j] = losuj.nextInt(51) +99;
			}
		}
		//Wyświetlenie tablicy zapis.
		for(int i=0; i<zapis.length; i++) {
			for(int j=0; j<zapis.length; j++) {
				System.out.print(zapis[i][j] + " ");
			}
			System.out.println();
		}
		// zapis do pliku.
	String fileName = "Tablica.txt";
	FileWriter fileWriter = null;
	try {
		fileWriter = new FileWriter(fileName);
		//zapis tablicy do pliku csv.
		for(int i=0; i<zapis.length; i++) {
			for(int j=0; j<zapis.length; j++) {
				fileWriter.write(zapis[i][j] + " \n");
			}
		}
	}catch (IOException ex) {
		System.out.println("Problem z dostępem do pliku");
	}finally {
		if(fileWriter == null) {
			System.out.println("Problem");
		}else {
			fileWriter.close();
		}
		}
	System.out.println("Odczyt z pliku");
	//odczyt z pliku.
	BufferedReader bf = null;
	try {
		bf = new BufferedReader( new FileReader(fileName));
		String linia = null;
		do {
			linia = bf.readLine();
			if(linia !=null) {
				for(int i=0; i<odczyt.length; i++) {
					for(int j=0; j<odczyt.length; j++) {
						odczyt[i][j] = linia;
					}
				}
			}
		}while(linia !=null);
		//Wyświetlenie tablicy odczyt.
		for(int i=0; i<odczyt.length; i++) {
			for(int j=0; j<odczyt.length; j++) {
				System.out.println(odczyt[i][j]);
			}
		}
	}catch(IOException ex) {
		
	}finally {
		
	}
}
}
	

ale wydaje mi się , że program nie działa poprawnie.Chodzi o to , że program losuje mi liczby do tablicy  i zapisuje mi do pliku i dotąd jest wszystko ok ale gdy zapisuję ten plik do tablicy to ta tablica źle mi się wypełnia chodzi o to , że program losuje i zpisuje liczby np 128 
122 
114 
112 
118 
100 
122 
111 
126 
123 
114 
136 
146 
107 
102 
138 
121 
111 
100 
119 
124 
138 
122 
107 
101 
131 
142 
100 
122 
116 
117 
127 
125 
133 
116 
107 
133 
126 
138 
142 
125 
101 
140 
130 
109 
148 
99 
126 
119 
104 
107 
116 
108 
117 
129 
135 
139 
146 
102 
140 
104 
133 
142 
131 
100 
146 
132 
140 
135 
104 
105 
100 
123 
130 
131 
104 
147 
101 
140 
111 
128 
135 
130 
121 
140 
111 
110 
130 
106 
104 
110 
144 
145 
103 
109 
110 
140 
106 
134 
126 

ale jak zapisuje plik do tablicy to wygląda to tak że zapisuje mi z pliku tylko ostatnią cyfrę np jak ostatnia jest 126 t do tablicy zapisuje się ciągle 126 jak 108 to 108 itd. Czy ktoś może mi pomóc w znalezieniu i poprawie błędu żeby wszystko działało jak należy bo nie mogę sobie z tym poradzić.Z góry dziękuję

pozdrawiam.

1 odpowiedź

0 głosów
odpowiedź 26 listopada 2018 przez mibdbz Gaduła (4,300 p.)
Nie jestem pewien, ale prawdopodobnie chodzi o warunek w pętli for podczas odczytywania z pliku. Masz tam napisane, żeby odczytywać do długości tablicy(i<odczyt.lenght). A tablica jeszcze nie jest zapelniona więc nie ma takiej długości. Moim zdaniem wystarczy ta pętla do-while tylko od razu w niej użyj wcześniej zadeklarowanych zmiennych i i j.

Podobne pytania

0 głosów
0 odpowiedzi 875 wizyt
pytanie zadane 24 listopada 2018 w Java przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 1,840 wizyt
pytanie zadane 23 listopada 2018 w Java przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 269 wizyt
pytanie zadane 27 czerwca 2022 w C i C++ przez sushi2021 Nowicjusz (160 p.)

92,555 zapytań

141,402 odpowiedzi

319,540 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...