problem z wczytaniem pliku

0

witam!! mam problem z odczytaniem z pliku tablicy liczby typu float. chcę aby zapisane one były w następujący sposób:
2.0 1.7 4.6
6.9 2.8 1.3
etc
funkcja zapisujące wygląda w następujący sposób:

PrintStream w = new PrintStream(new RobocodeFileOutputStream(getDataFile(nazwa)));
			for (int i=0;i<tab.length;i++)
				for (int j=0;j<tab[i].length;j++)
					{
						if ((j==0) && (i!=0)) w.print('\n');
						w.print(tab[i][j]);
						w.print(' ');
					}

i działa ona poprawnie ;-)
jednak przy wczytywaniu:

BufferedReader br = new BufferedReader(new FileReader(getDataFile(nazwa)));
String s="\n",tmp="";
int x=0,y=0;
            while (s!=null)
            {
            	s=br.readLine();
            	if (s!=null) 
            	{
            		for (int i = 0; i<s.length(); i++) 
            		{
            			if (s.charAt(i)!=' ')
            				tmp = tmp + s.charAt(i);
            			else
            			{
            				tab[x][y]=Float.parseFloat(tmp);
            				y++;
            			}
            		}
            		x++;
            		tmp = "";
            	} 
            }
            s = "";
            br.close();

nigdy nie jest spełniony warunek

if (s.charAt(i)!=' ')

, także przy wczytywaniu w powyższym przypadku do tempa przypisywany jest ciąg znaków w następujący sposób: 2.01.74.6 i program oczywiście wykrzacza się po próbie przypisanie tego do floata. próbowałem zastąpić znak spacji jakimś innym np '>' jednak wynik działania jest taki sam :/ co może być tego przyczyną ??

0

Błąd powstaje nie dlatego, że

if (s.charAt(i)!=' ')

nie jest nigdy spełnione, a z powodu, że zerujesz zmienną tmp w złym miejscu. Powinno być:

for (int i = 0; i<s.length(); i++) 
            		{
            			if (s.charAt(i)!=' ')
            			{
            				tmp = tmp + s.charAt(i);
            			}
            			else
            			{
            				tab[x][y]=Float.parseFloat(tmp);
            				tmp = "";
            				y++;
            			}
            		}
            		x++;
            		y=0;

1 użytkowników online, w tym zalogowanych: 0, gości: 1