Sziasztok!
Ha Java-ban egy Integer típusú tömb elemit íratom ki egy fájlba, akkor a "fájl" végére odaír mindig egy nullát is. Ez természetes vagy csak egy lépést kihagytam?
- 8316 megtekintés
Hozzászólások
pastebin
- A hozzászóláshoz be kell jelentkezni
http://geekandpoke.typepad.com/geekandpoke/2013/05/java-101.html
Bocs, de ez jutott eszembe a cimrol ;)
- A hozzászóláshoz be kell jelentkezni
Hol a kód? Biztos vagy benne, hogy nem te rontod el a dolgot?
- A hozzászóláshoz be kell jelentkezni
Nem, nem vagyok benne biztos, sőt valószínű hogy én rontottam el valamint, eddig csak szöveges tartalmakat írtam ki fájlba azzal nem volt gond, most hogy számokat kellett fájlba írni így akadt ez a kis probléma, a fájl létrejön és a számok is benne vannak, a gond csupán annyi hogy egy nullát még beír a fájlba.
Amúgy itt a kódrészlet:
try {
FileWriter file = new FileWriter("Eltárolt számok.txt");
for (int i=0; i<=vegjel; i++){
int seged = Szamok[i];
String seged2 = String.valueOf(seged);
file.write(seged2 +" , ");
}
- A hozzászóláshoz be kell jelentkezni
Szerintem nincs feltöltve teljesen neked a tömböd és ezert az utolso elem értéke 0. Ezert igy eleg ez :
for (int i=0; i < vegjel; i++)
vegjel az a tomb nagysaga lenne? vegjel=Szamok.length();
Amugy azt hiszem (ki kell probalni) nem kell kulon cast-ot csinalni, eleg a file.write -ben egy ilyen (már a + után ha stringet adsz hozza az elozo elemhez akkor az is stringe konvertalodik):
file.write(Szamok[i]+",");
Persze lehet tévedek.
Szijártó Zoltán
Aki tud az alkot, aki nem tud az csak szövegel.
- A hozzászóláshoz be kell jelentkezni
"Amugy azt hiszem (ki kell probalni) nem kell kulon cast-ot csinalni, eleg a file.write -ben egy ilyen (már a + után ha stringet adsz hozza az elozo elemhez akkor az is stringe konvertalodik):
file.write(Szamok[i]+",");"
Először én is így csináltam, de amit a fájlba írt az valami katasztrófa volt, mindenféle hieroglifákat.
Akkor gondoltam hogy "szöveget" csinálok a számokból, és így jó lett.
Valószínű hogy igazad van, erre én nem is gondoltam. Köszi.
- A hozzászóláshoz be kell jelentkezni
Ezekkel javaslom az összeismerkedést:
http://docs.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html
http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html (format metódus)
- A hozzászóláshoz be kell jelentkezni
Nem hiszem hogy multithreading -ezik, ezért hadd ugassak bele: StringBuffer helyett inkább StringBuilder.
--
http://developersideas.blogspot.hu/
http://neurogadget.com/
- A hozzászóláshoz be kell jelentkezni
Sajnos a legtobb ide alahuzza, ha buildert hasznalsz. Ha a StringBuffer API-ja ugyanolyan, akkor nem teljesen mindegy, melyiket hasznalja egy amugy nem performance-kritikus ponton?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Le van írva hogy melyik hova való, ide ez.
szerk.: "Sajnos a legtobb ide alahuzza, ha buildert hasznalsz." Az Eclipse nem húzza alá (findbugs és checkstyle is fent van nálam).
--
http://developersideas.blogspot.hu/
http://neurogadget.com/
- A hozzászóláshoz be kell jelentkezni
Tudjuk, hogy szeretsz mindenhova fogalom nélkül belepofázni, de azért néha visszafoghatnád magad. Vagy legalább olvass utána: http://tifyty.wordpress.com/2012/07/31/stringbuffer-es-stringbuilder
- A hozzászóláshoz be kell jelentkezni
Nyilván a megfelelő ascii kódokat írta ki :)
--
Gábriel Ákos
http://i-logic.hu
- A hozzászóláshoz be kell jelentkezni
Szerintem erre gondoltal, ez működik is, továbbá szebb, ha az utolso szám után nem rak ,-t:
import static java.lang.System.*;
import static java.lang.Integer.*;
import java.io.*;
class test {
public static void main(String[] args) {
int[] Szamok = {1,2,3,4,5};
try {
FileWriter file = new FileWriter("szamok.txt");
int n=Szamok.length;
for (int i=0; i < n; i++){
file.write(""+Szamok[i]);
if (i < n-1) { file.write(","); }
}
file.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Szetesett a tagolás, de ez van, igy ismerte fel a hup editor.
Szijártó Zoltán
Aki tud az alkot, aki nem tud az csak szövegel.
- A hozzászóláshoz be kell jelentkezni
Ha kacsacsorok helyett kockas code taget alkalmazol, akkor megmarad a tagolas. Olvass bele a formazasi lehetosegekbe.
Persze egy pastebinnel csak egy gist a tutibb.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
mi a vegjel?
0-val kezdődő indexálásnál
i<Szamok.length
-ig kell menni.
- A hozzászóláshoz be kell jelentkezni
Brutális java kód, már bocs :)
- A hozzászóláshoz be kell jelentkezni
Mindenki kezdi valahol :)
--
Gábriel Ákos
http://i-logic.hu
- A hozzászóláshoz be kell jelentkezni