Hej wszystkim ponownie! Zacząłem pisać nowy program i znowu popełniam błędy. Mam problem z podmianą zawartości pliku tekstowego, bardziej szczegółowo chodzi o to że mam napisać funkcję która będzie szyfrowała zawartość pliku tekstowego ( coś na zasadzie szyfru cezara). Niestety kiedy wywołuję funkcję zawartość pliku która powinna zostać podmieniona znika, a plik zostaje pusty. Popełniam gdzieś błąd tylko nie wiem gdzie, prawdopodobnie napisałem coś bezsensowego :P. Oto treść tego co mam zrobić oraz kod który napisałem:
4. Stworzyć dwie funkcje:
void szyfruj(String nazwaWe, int przesun)
void deszyfruj(String nazwaWe, int przesun)
Funkcja szyfruj dokonuje szyfrowania pliku, którego nazwa podana została jako pierwszy parametr. Szyfrowanie polega na zamianie każdej litery na znak przesunięty o wartość podaną drugim parametrem np. dla przesunięcia równego 2 literka ’a’ powinna zostać zastąpiona literką ’c’, literka ’z’ literką ’b’ itp. Wynikiem działania funkcji ma być plik o nazwie utworzonej na podstawie nazwy pliku wejściowego poprzez dołączenie znaku ’ ’ np. dla pliku dane.txt zaszyfrowana postać powinna mieć nazwę dane.txt. Funkcja deszyfruj powinna deszyfrować plik (niekoniecznie ten sam) zaszyfrowany przez funkcję szyfruj.
package zadanie4;
import java.io.FileReader;
import java.io.IOException;
import java.io.FileWriter;
public class Zadanie4 {
public static void szyfruj(String nazwaWe, int przesun) throws IOException
{
FileReader f = null;
FileWriter fw = null;
try
{
f = new FileReader("C:/pliki_java/" + nazwaWe);
fw = new FileWriter("C:/pliki_java/" + nazwaWe);
int AsciiCode;
while((AsciiCode = f.read()) != -1)
{
AsciiCode += przesun;
char NowyZnak = (char)AsciiCode;
fw.write(NowyZnak);
}
}
finally
{
if(f != null)
{
f.close();
}
}
}
public static void deszyfruj(String nazwaWe, int przesun)
{
}
public static void main(String[] args) throws IOException {
szyfruj("text4.txt",2);
}
}
Dziękuję za wszelką pomoc :)