Witam, mam pytanie odnośnie poprawności kodu zapisu do / odczytu z pliku, oraz "pozyskiwania" kodu ASCII z char'a i na odwrót. Z góry dziękuję :)
import java.io.File;
import java.io.PrintWriter;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("Podaj lancuch znakow : ");
String a; // Do zmiennej 'a' przypisywany jest lancuch znakow
File file = new File("tekst.txt");
Scanner scan = new Scanner(System.in);
a = scan.nextLine();
scan.close();
int[] array = new int[a.length()]; // Tablica na kod ASCII
int i = 0;
while (i < a.length()) // zamieniam znaki na kod ASCII dla kazdego znaku
{
array[i] = (int) a.charAt(i);
i++;
}
System.out.println("Kod ASCII : ");
toAscii(array);
System.out.println("\nCzytam kod ASCII : ");
toCharsFromAscii(array);
System.out.println("\nZapisuje kod ASCII do pliku " + file.getName());
writeAsciiToFile(file, array);
System.out.println("\nCzytam kod ASCII z pliku " + file.getName());
readAsciiFromFile(file);
}
private static void readAsciiFromFile(File file) {
try {
Scanner out = new Scanner(file);
while (out.hasNext()) {
System.out.print(Character.toChars(out.nextInt()));
}
out.close();
} catch (Exception e) {
System.out.println("Nie udalo sie odczytac zawartosci pliku " + file.getName());
}
}
private static void writeAsciiToFile(File file, int[] array) {
try {
PrintWriter printWriter = new PrintWriter(file.getName());
for (int x : array) {
printWriter.print(x + " ");
}
printWriter.close();
} catch (Exception e) {
System.out.println("Nie udalo sie zapisac kodu ASCII do pliku");
}
}
private static void toCharsFromAscii(int[] array) {
for (int x : array) {
System.out.print(Character.toChars(x));
}
}
private static void toAscii(int[] array) {
for (int x : array) {
System.out.print(x + " ");
}
}
}