Технологии Java
Структура курса
Байтовый | Символьный | |
---|---|---|
Ввод | InputStream | Reader |
Вывод | OutputStream | Writer |
void copy(InputStream is, OutputStream os) throws IOException { byte[] b = new byte[1 << 16]; int c = 0; while ((c = is.read(b)) >= 0) { os.write(b, 0, c); } }
try ( Reader reader = new FileReader("input.txt", StandardCharsets.UTF_8); Writer writer = new FileWriter("output.txt", StandardCharsets.UTF_8); ) { int c = 0; while ((c = reader.read()) >= 0) { writer.write(Character.toUpperCase((char) c)); } }
try ( Reader reader = new InputStreamReader( new FileInputStream("input.txt"), "Cp1251"); Writer writer = new OutputStreamWriter( new FileOutputStream("output.txt"), "Cp866"); ) { int c = 0; while ((c = reader.read()) >= 0) { writer.write(c); } }
public class EncodingOutputStream extends FilterOutputStream { private final int key; public EncodingOutputStream( OutputStream os, int key) { super(os); this.key = key; } public void write(int b) throws IOException { super.write(b ^ key); } }
Строка | Режим |
---|---|
r | Чтение |
rw | Чтение и запись |
rwd | Синхронные чтение и запись |
rws | Синхронные чтение и запись (+метаданные) |
try (Reader reader = new FileReader("in.txt")) { // Операции с файлом } // Ресурс автоматически закрывается
Reader reader = new FileReader("input.txt"); try { // Операции с файлом } finally { reader.close(); }
Reader reader = null; try { reader = new FileReader("input.txt"); … } finally { if (reader != null) { reader.close(); } }
Reader reader = new FileReader("input.txt"); try { // Операции с файлом reader.close(); } catch (IOException e) { try { reader.close(); } catch (IOException ignored) {} throw e; }
Reader reader = new FileReader("input.txt"); try { Writer writer = new FileWriter("output.txt"); try { // Операции ввода-вывода } finally { writer.close(); } } finally { reader.close(); }
try ( Reader reader = new FileReader("input.txt"); Writer writer = new FileWriter("output.txt"); ) { // Операции ввода-вывода }