Класс 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