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ą ??