Класс InputStreamReader в Java
Класс InputStreamReader считывает символы из байтового входного потока. Он считывает байты и декодирует их на символы с использованием указанной кодировки. Уровень декодирования преобразует байты в символы в соответствии со стандартом кодирования. Есть много доступных кодировок на выбор.
Класс InputStreamReader выполняет две задачи:
- Прочитать входной поток клавиатуры.
- Преобразовать потоки байтов в потоки символов.
Следующая программа Java получает InputStreamReader с клавиатуры
import Java.util.*;
import Java.io.*;
public class TestClass{
public static void main( String[] args ){
try {
InputStreamReader isReader = new InputStreamReader(System.in);
BufferedReader bReader=new BufferedReader(isReader);
System.out.println("Enter anything......");
String data=bReader.readLine();
System.out.println("You Entered.... "+data);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Следующая программа Java получает InputStreamReader из файла
import Java.util.*;
import Java.io.*;
public class TestClass{
public static void main( String[] args ){
try {
InputStream is = new FileInputStream("d:\\test.txt");
Reader isr = new InputStreamReader(is);
int data = isr.read();
while(data != -1){
data = isr.read();
char chr = (char) data;
System.out.print(chr);
}
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Как преобразовать String в InputStream в Java?
ByteArrayInputStream делает трюк от Java 1.4
InputStream is = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8));
Начиная с Java 1.7, StandardCharsets определяет константы для Charset, включая UTF-8. Вы должны включить импорт Java.nio.charset.StandardCharsets; в вашем файле Java. Обратите внимание, что это предполагает, что вы хотите, чтобы InputStream представлял собой поток байтов, представляющий исходную строку, кодированную как UTF-8.
Следующая программа Java читает строку как InputStream.
import Java.util.*;
import Java.io.*;
import Java.nio.charset.StandardCharsets;
public class TestClass{
public static void main( String[] args ){
try {
String inputString = "This is a test !! ";
InputStream is = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8));
Reader isr = new InputStreamReader(is);
int data = isr.read();
while(data != -1){
data = isr.read();
char chr = (char) data;
System.out.print(chr);
}
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Источник: http://net-informations.com/Java/files/sread.htm
