Witam. Jestem początkującym, potrzebuje pomocy z zapisem do pliku tego co wyświetliło się w konsoli. Załóżmy, że pobieram scannerem tekst wklepany z klawiatury . Jak teraz zrobić aby zapisać do pliku to co wklepałem i to co zostało wyświetlone przy użyciu System.out.print ??
Z wiersza poleceń: program >plik_do_zapisu_wyników.txt
Tylko problem polega na tym, że musimy napisać program w NetBeansie i wykorzystać strumienie. I kompletnie nie wiem jak to robić. Znalazłem w google info o strumieniach FileOutputStream i FileWriter tylko nie bardzo wiem jak ich użyć.
Nie znam na NetBasie, ale jeśli bym miał to napisać w C/C++ to bym tak zrobił. Wczytujesz normalnie z głównego pliku, ale wypisywanie odbywa się za pomocą funkcji, która: -A) wypisuje na konsole, B) zapisuje do pliku, zapisywanie odbywa się w trybie dopisywania. Czyli apend.
Dlaczego funkcja? Ponieważ byłby kłopot z zakończeniem pętli, która by wywoływała ciąglę funkcję scan i funkcję przez nas napisaną.
Tak na szybko, mała pomoc:
FileOutputStream fop = null;
File file;
String content = "This is the text content";
System.out.println(content); //
try {
file = new File("c:/newfile.txt");
fop = new FileOutputStream(file);
// jesli plik nie istnieje to go utworz
if (!file.exists()) {
file.createNewFile();
}
// tresc do bajtow
byte[] contentInBytes = content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fop != null) {
fop.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Powinno pomóc i nakreślić, jak to powinno wyglądać :)
To wystarczy jeśli chcesz pisać do pliku:
try
{
System.setOut(new PrintStream(new File("log.txt")));
}
catch(Exception e)
{
System.out.println(e);
}
Jeśli chcesz pisać na konsolę i do pliku, to musisz przełączać standardowe wyjście:
PrintStream standard = System.out;
PrintStream file = null;
try
{
file = new PrintStream(new File("log.txt"));
}
catch(Exception e)
{
System.out.println(e);
}
System.setOut(file);
System.out.println("abrakadabra");
System.out.println(44);
System.setOut(standard);
System.out.println("abrakadabra");
System.out.println(44);
System.setOut(file);
System.out.println("abrakadabra");
System.out.println(44);
System.setOut(standard);
System.out.println("abrakadabra");
System.out.println(44);