
Java zavolání metody a vypsání do souboru
-mám soubor pro samostatnou třídu
-v této tříde mám metody
-jedna metoda kdyz jí zavolám, vypíše nějaký výsledek (v tý mětodě to je realizována normálně přes System.out.print...
-já potřebuju tu metodu zavolat, ale aby se ten výsledek vypsal do souboru.
takze jsem zkousel neco jako todle
{
try (BufferedWriter bw = new BufferedWriter(new FileWriter("soubor.txt", true)))
{
bw.write("Zadane cislo se da vyjadrit jako: "+instance.fibonacci());
bw.newLine();
bw.flush();
}
catch (Exception e)
{
System.err.println("Do souboru se nepovedlo zapsat.");
}
}
nebo todle
FileWriter out = new FileWriter ("text2.txt");
out.write(String.valueOf(instance.fibonacci()));
out.close();
ale nejde to.
Jde to nějak jinak, nebo musím přímo v tý metodě udělat to, ad se to rovnou vypisuje do souboru? A každý to System.out.print zmenit za to vypsání do souboru a nějak tam ošetřit ty vyjímky/chyby?
thx
To je přesný příklad, jak by programátorský dotaz neměl vypadat. Problém musíš vždy popsat přesně.
no vypíše jen to co je v tom rezetci (bw.write("Zadane cislo se da vyjadrit jako:) ale uz se nevypíše výsledek tý metody do toho souboru
A tohle vrací co?
instance.fibonacci()
A je docela podivné, když si metoda zodpovědná za výpis do souboru říká o výsledek. Výsledek by měla dostat zvenčí.
kdyz napíšu samostatne instance.fibonacci() tak to vrátí např.: 89+8+3 do konzole v závislosti na vstupu. Když to zkusim vypsat do souboru, tak nevrátí nic.
No já nevím jak to udělat jinak, resp jak udelat aby dostala výsledek zvenčí.
Neptal jsem se, co to píše do konzole, ale co ta metoda vrací.
Zvenčí to dostaneš tak, že to do metody předáš jako argument.
aha sry moje skills jsou začátečnický. Už jsem zjistil že to vrací 0/nic (return 0 na konci metody). Zkusil jsem to zmenit na void aby tam nebyl zadnej return, a jen se vypsalo ty system.out.printy, jenze pak nejde toto
pise to ze to nemuze bejt typu void
Takze me napadlo max ty mezivýsledky co se vypisujou pres system.out. ulozit do arraylistu, vytvorit pole, a to pole pak nejak nandat na return, to jsem uz ale minule zkousel a nepodarilo se mi to.
Pokud chceš výsledek té metody někde použít, tak to ta metoda musí vracet. Ve tvém případě teda nejspíš nějaký string. Případně i to pole výsledků a string si z toho uděláš až před výpisem.