Технологии 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");
) {
// Операции ввода-вывода
}