При попытке вывести на консоль вывод read () той же программы, символы либо отсутствуют, либо расстроены.Пробовал это также для разных файлов, получая ту же проблему.
Класс и метод байтового потока FileInputStream.read () для кода того же типа работал отлично, но этот поток символов получается по-разному.
import java.io.*;
import java.util.Scanner;
import static java.lang.System.*;
class CSRead1
{
public static void main(String[] args) throws IOException
{
Scanner input = new Scanner(in);
out.print("Enter the filename\t>");
String file = input.next();
try(FileReader fr = new FileReader(file))
{ while(fr.read() != -1)
{out.print((char)fr.read());} } //***reading improperly
}
}
Получено при выполнении:
D:\JavaEx\FILE-IO>java CSRead1
Enter the filename >CSRead1.java
ipr aaui.cne;
{asCRa1aaln.ytm*
pbi ttcvi anSrn[ rs hosIEcpin
{
cne nu e cne(n;
u.rn(Etrteflnm\>)
tyFlRae r=nwFlRae(ie)
hl(rra( =-)
{u.rn(ca)rra()}}/**edn mrpry
}
?
Для текстового файла, содержащего единственную строку «Hello»
D:\JavaEx\FILE-IO>java CSRead1
Enter the filename >sample
el?