1. OutputStreamрд╡рд░реНрдЧ

рдЖрдореНрд╣реА рдиреБрдХрддреЗрдЪ рдЗрдирдкреБрдЯ рдкреНрд░рд╡рд╛рд╣ рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХреЗрд▓реЗ. рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ.

рд╡рд░реНрдЧ OutputStreamрд╣рд╛ рд╕рд░реНрд╡ рд╡рд░реНрдЧрд╛рдВрд╕рд╛рдареА рдкрд╛рд▓рдХ рд╡рд░реНрдЧ рдЖрд╣реЗ рдЬреЛ рдмрд╛рдЗрдЯ рдЖрдЙрдЯрдкреБрдЯрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЛ. рд╣рд╛ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдЖрд╣реЗ рдЬреЛ рд╕реНрд╡рддрдГ рдХрд╛рд╣реАрд╣реА рдХрд░рдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╕рдВрдЧрд╛рд╕рд╛рдареА рддреНрдпрд╛рдЪреЗ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рдЖрд╣реЗрдд.

рд╣реЗ рдЕрддреНрдпрдВрдд рдХреНрд▓рд┐рд╖реНрдЯ рд╡рд╛рдЯрддреЗ. рдЕрдзрд┐рдХ рд╕реЛрдкреНрдпрд╛ рднрд╛рд╖реЗрдд рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рд╣рд╛ рд╡рд░реНрдЧ рдмрд╛рдЗрдЯреНрд╕рд╡рд░ рдЪрд╛рд▓рддреЛ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд░реНрдг рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрд╡рд░ рдирд╛рд╣реА. рдЖрдгрд┐ рд╣реЗ рдЕрдореВрд░реНрдд рдЖрд╣реЗ рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдЖрдкрдг рд╕рд╣рд╕рд╛ рддреЗ рд╡рд╛рдкрд░рдд рдирд╛рд╣реА, рддрд░ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рдВрд╢рдЬрд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, FileOutputStreamрдЖрдгрд┐ рд╕рд╛рд░рдЦреЗ.

рдкрдг рдкрд░рдд рд╡рд░реНрдЧрд╛рдд OutputStream. рдпрд╛ рд╡рд░реНрдЧрд╛рдд рдЕрд╢рд╛ рдкрджреНрдзрддреА рдЖрд╣реЗрдд рдЬреНрдпрд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рд╡рдВрд╢рдЬрд╛рдВрдиреА рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд. рдпреЗрдереЗ рдореБрдЦреНрдп рдЖрд╣реЗрдд:

рдкрджреНрдзрддреА рд╡рд░реНрдгрди
void write(int b)
intрдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рдПрдХ рдмрд╛рдЗрдЯ (рдирд╛рд╣реА) рд▓рд┐рд╣рд┐рддреЛ .
void write(byte[] buffer)
рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рдмрд╛рдЗрдЯреНрд╕рдЪрд╛ рдЕтАНреЕрд░реЗ рд▓рд┐рд╣рд┐рддреЛ
void write(byte[] buffer, off, len)
рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рдмрд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рдЕреЕрд░реЗрдЪрд╛ рднрд╛рдЧ рд▓рд┐рд╣рд┐рддреЛ
void flush()
рдмрдлрд░рдордзреНрдпреЗ рд╕рдВрдЪрдпрд┐рдд рдХреЗрд▓реЗрд▓рд╛ рд╕рд░реНрд╡ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рд▓рд┐рд╣рд┐рддреЛ
void close()
рдкреНрд░рд╡рд╛рд╣ рдмрдВрдж рдХрд░рддреЛ

рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╡рд╛рд░рд╕рд╛ рдорд┐рд│рд╛рд▓реЗрд▓реНрдпрд╛ рд╡рд░реНрдЧрд╛рдЪрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рддрд╛ InputStream, рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реНрд░реЛрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рдЬреНрдпрд╛рд╡рд░реВрди InputStreamрдбреЗрдЯрд╛ рд╡рд╛рдЪрддреЛ. рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╡рд╛рд░рд╕рд╛ рдорд┐рд│рд╛рд▓реЗрд▓реНрдпрд╛ рд╡рд░реНрдЧрд╛рдЪрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рддрд╛ OutputStream, рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд┐рдВрд╡рд╛ рд╕реНрдЯреНрд░реАрдо рджреЗрдЦреАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рдЬреНрдпрд╛рд╡рд░ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рд▓рд╛ рдЬрд╛рдИрд▓.

рдЪрд▓рд╛ рд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рдкрджреНрдзрддреА рдереЛрдбрдХреНрдпрд╛рдд рдкрд╛рд╣реВ OutputStream:

write(int b)рдкрджреНрдзрдд

intрд╣реА рдкрджреНрдзрдд рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рдПрдХ рдмрд╛рдЗрдЯ (рдирд╛рд╣реА) рд▓рд┐рд╣рд┐рддреЗ . рдкрд╛рд╕ рдХреЗрд▓реЗрд▓реЗ рдореВрд▓реНрдп рдмрд╛рдЗрдЯрд╡рд░ рдЯрд╛рдХрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ int рдЪреЗ рдкрд╣рд┐рд▓реЗ рддреАрди рдмрд╛рдЗрдЯ рдЯрд╛рдХреВрди рджрд┐рд▓реЗ рдЬрд╛рддрд╛рдд.

write(byte[] buffer)рдкрджреНрдзрдд

рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╡рд╛рд╣рд╛рдд рдмрд╛рдЗрдЯреНрд╕рдЪрд╛ рджрд┐рд▓реЗрд▓рд╛ рдЕреЕрд░реЗ рд▓рд┐рд╣рд┐рддреЛ. рдмрд╕ рдПрд╡рдвреЗрдЪ.

write(byte[] buffer, int offset, int length)рдкрджреНрдзрдд

рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╡рд╛рд╣рд╛рдд рдкрд╛рд╕ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рдЕреЕрд░реЗрдЪрд╛ рдПрдХ рднрд╛рдЧ рд▓рд┐рд╣рд┐рддреЛ. рдСрдлрд╕реЗрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЕреЕрд░реЗрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдШрдЯрдХрд╛рдЪреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рджрд░реНрд╢рд╡рд┐рддреЗ рдЖрдгрд┐ lengthрд▓рд┐рд╣рд┐рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдЙрдкрд╕реЗрдЯрдЪреА рд▓рд╛рдВрдмреА рдЖрд╣реЗ.

flush()рдкрджреНрдзрдд

flush()рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдд рд╕рдВрднрд╛рд╡реНрдп рдмрдлрд░ рдХреЗрд▓реЗрд▓рд╛ рдХреЛрдгрддрд╛рд╣реА рдбреЗрдЯрд╛ рд▓рдХреНрд╖реНрдп рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕ рднрд╛рдЧ рдкрд╛рдбрдгреНрдпрд╛рд╕рд╛рдареА рдкрджреНрдзрдд рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ . рдмрдлрд░рд┐рдВрдЧ рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рд╕рд╛рдЦрд│реАрдордзреНрдпреЗ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдПрдХрд╛рдзрд┐рдХ рдкреНрд░рд╡рд╛рд╣ рд╡рд╕реНрддреВ рд╡рд╛рдкрд░рддрд╛рдирд╛ рд╣реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ.

close()рдкрджреНрдзрдд

рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░ рдХреЛрдгрддрд╛рд╣реА рдЕрд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рддреЛ. close()рддреБрдореНрд╣реА рдмреНрд▓реЙрдХ рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╕ рдкрджреНрдзрдд рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА try-with-resources.

рдлрд╛рдЗрд▓ рдХреЙрдкреА рдХрд░рдгреНрдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг

рдХреЛрдб рдиреЛрдВрдж
String src = "c:\\projects\\log.txt";
String dest = "c:\\projects\\copy.txt";

try(FileInputStream input = new FileInputStream(src);
FileOutputStream output = new FileOutputStream(dest))
{
   byte[] buffer = new byte[65536]; // 64Kb
   while (input.available() > 0)
   {
      int real = input.read(buffer);
      output.write(buffer, 0, real);
   }
}



InputStreamрдлрд╛рдЗрд▓рдордзреВрди рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА
OutputStreamрдлрд╛рдИрд▓

рдмрдлрд░рд╡рд░ рд▓рд┐рд╣рд╛ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдореНрд╣реА рдбреЗрдЯрд╛ рд╡рд╛рдЪреВ
рдЬреЛрдкрд░реНрдпрдВрдд рд╕реНрдЯреНрд░реАрдордордзреНрдпреЗ рдбреЗрдЯрд╛ рдЖрд╣реЗ рддреЛрдкрд░реНрдпрдВрдд

рдмрдлрд░рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╡рд╛рдЪрд╛
рдмрдлрд░рдордзреВрди рджреБрд╕рд▒реНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдд рдбреЗрдЯрд╛ рд▓рд┐рд╣рд╛

2. Writerрд╡рд░реНрдЧ

рд╡рд░реНрдЧ WriterрдЕрдЧрджреА рд╡рд░реНрдЧрд╛рд╕рд╛рд░рдЦрд╛рдЪ рдЖрд╣реЗ OutputStream, рдкрд░рдВрддреБ рдкреБрдиреНрд╣рд╛ рдПрдХрджрд╛ рдлрдХреНрдд рдПрдХ рдлрд░рдХ: рддреЛ charрдмрд╛рдЗрдЯреНрд╕рдРрд╡рдЬреА ( ) рд╡рд░реНрдгрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЛ.

рд╣рд╛ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдЖрд╣реЗ: рддреБрдореНрд╣реА рд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рд╡рд╕реНрддреВ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА Writer. рд╢реЗрдХрдбреЛ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧрд╛рдВрд╕рд╛рдареА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рд▓рдХ рд╡рд░реНрдЧ рдЕрд╕рдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рд╡рд░реНрдг рдкреНрд░рд╡рд╛рд╣рд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдорд╛рдиреНрдп рдкрджреНрдзрддреА рджреЗрдгреЗ рд╣реЗ рддреНрдпрд╛рдЪреЗ рдореБрдЦреНрдп рдзреНрдпреЗрдп рдЖрд╣реЗ.

рд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреА Writer(рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рд╕рд░реНрд╡ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ):

рдкрджреНрдзрддреА рд╡рд░реНрдгрди
void write(int b)
intрдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рдПрдХ рд╡рд░реНрдг (рдирд╛рд╣реА) рд▓рд┐рд╣рд┐рддреЛ .
void write(char[] buffer)
рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рд╡рд░реНрдгрд╛рдВрдЪрд╛ рдЕтАНреЕрд░реЗ рд▓рд┐рд╣рд┐рддреЛ
void write(char[] buffer, off, len)
рдкреНрд░рд╡рд╛рд╣рд╛рдд рд╡рд░реНрдгрд╛рдВрдЪреНрдпрд╛ рдЕреЕрд░реЗрдЪрд╛ рднрд╛рдЧ рд▓рд┐рд╣рд┐рддреЛ
void write(String str)
рдкреНрд░рд╡рд╛рд╣рд╛рд▓рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рд╣рд┐рддреЛ
void write(String str, off, len)
рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪрд╛ рднрд╛рдЧ рд▓рд┐рд╣рд┐рддреЛ
void flush()
рдмрдлрд░рдордзреНрдпреЗ рд╕рдВрдЪрдпрд┐рдд рдХреЗрд▓реЗрд▓рд╛ рд╕рд░реНрд╡ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рд▓рд┐рд╣рд┐рддреЛ
void close()
рдкреНрд░рд╡рд╛рд╣ рдмрдВрдж рдХрд░рддреЛ

рдкрджреНрдзрддреА рд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреАрдВрд╕рд╛рд░рдЦреНрдпрд╛рдЪ рдЖрд╣реЗрдд OutputStream, рдкрд░рдВрддреБ рддреНрдпрд╛ рдмрд╛рдЗрдЯреНрд╕рдРрд╡рдЬреА рд╡рд░реНрдгрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд.

рдкрджреНрдзрддреАрдВрдЪреЗ рд╡рд░реНрдгрди:

write(int b)рдкрджреНрдзрдд

рд╣реА рдкрджреНрдзрдд рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдорд╡рд░ рдПрдХрдЪ рд╡рд░реНрдг ( charтАФ рдирд╛рд╣реА ) рд▓рд┐рд╣рд┐рддреЗ. intрдкрд╛рд╕ рдХреЗрд▓реЗрд▓реЗ рдореВрд▓реНрдп a рд╡рд░ рдЯрд╛рдХрд▓реЗ рдЬрд╛рддреЗ charрдЖрдгрд┐ рдкрд╣рд┐рд▓реЗ рджреЛрди рдмрд╛рдЗрдЯ рдЯрд╛рдХреВрди рджрд┐рд▓реЗ рдЬрд╛рддрд╛рдд.

write(char[] buffer)рдкрджреНрдзрдд

рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╡рд╛рд╣рд╛рдд рд╡рд░реНрдгрд╛рдВрдЪрд╛ рджрд┐рд▓реЗрд▓рд╛ рдЕреЕрд░реЗ рд▓рд┐рд╣рд┐рддреЛ.

write(char[] buffer, int offset, int length)рдкрджреНрдзрдд

рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдордордзреНрдпреЗ рдкрд╛рд╕ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд░реНрдгрд╛рдВрдЪреНрдпрд╛ рдЕреЕрд░реЗрдЪрд╛ рдПрдХ рднрд╛рдЧ рд▓рд┐рд╣рд┐рддреЛ. рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ offsetрдЕтАНреЕрд░реЗрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдШрдЯрдХрд╛рдЪреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рджрд░реНрд╢рд╡рддреЗ рдЖрдгрд┐ lengthрд▓рд┐рд╣рд┐рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдЙрдкрд╕рдВрдЪрд╛рдЪреА рд▓рд╛рдВрдмреА рдЖрд╣реЗ.

write(String str)рдкрджреНрдзрдд

рджрд┐рд▓реЗрд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдорд╡рд░ рд▓рд┐рд╣рд┐рддреЗ.

write(String str, int offset, int length)рдкрджреНрдзрдд

рджрд┐рд▓реЗрд▓реНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪрд╛ рдПрдХ рднрд╛рдЧ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдорд╡рд░ рд▓рд┐рд╣рд┐рддреЛ: рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдХреНрд╖рд░рд╛рдВрдЪреНрдпрд╛ рдЕреЕрд░реЗрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реЛрддреЗ. рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ offsetрдЕтАНреЕрд░реЗрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдШрдЯрдХрд╛рдЪреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рджрд░реНрд╢рд╡рддреЗ рдЖрдгрд┐ lengthрд▓рд┐рд╣рд┐рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдЙрдкрд╕рдВрдЪрд╛рдЪреА рд▓рд╛рдВрдмреА рдЖрд╣реЗ.

flush()рдкрджреНрдзрдд

flush()рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдд рд╕рдВрднрд╛рд╡реНрдп рдмрдлрд░ рдХреЗрд▓реЗрд▓рд╛ рдХреЛрдгрддрд╛рд╣реА рдбреЗрдЯрд╛ рд▓рдХреНрд╖реНрдп рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕ рднрд╛рдЧ рдкрд╛рдбрдгреНрдпрд╛рд╕рд╛рдареА рдкрджреНрдзрдд рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ . рдмрдлрд░рд┐рдВрдЧ рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рд╕рд╛рдЦрд│реАрдордзреНрдпреЗ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдПрдХрд╛рдзрд┐рдХ рдкреНрд░рд╡рд╛рд╣ рд╡рд╕реНрддреВ рд╡рд╛рдкрд░рддрд╛рдирд╛ рд╣реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ.

close()рдкрджреНрдзрдд

рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░ рдХреЛрдгрддрд╛рд╣реА рдЕрд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рддреЛ. close()рддреБрдореНрд╣реА рдмреНрд▓реЙрдХ рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╕ рдкрджреНрдзрдд рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА try-with-resources.

рдордЬрдХреВрд░ рдлрд╛рдЗрд▓ рдХреЙрдкреА рдХрд░рдгрд╛рд▒реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреЗ рдЙрджрд╛рд╣рд░рдг:

рдХреЛрдб рдиреЛрдВрдж
String src = "c:\\projects\\log.txt";
String dest = "c:\\projects\\copy.txt";

try(FileReader reader = new FileReader(src);
FileWriter writer = new FileWriter(dest))
{
   char[] buffer = new char[65536]; // 128Kb
   while (reader.ready())
   {
      int real = reader.read(buffer);
      writer.write(buffer, 0, real);
   }
}



Readerрдлрд╛рдЗрд▓рдордзреВрди рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА
Writerрдлрд╛рдИрд▓ рдмрдлрд░рд╡рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА

рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдореНрд╣реА рдбреЗрдЯрд╛ рд╡рд╛рдЪреВ
рдЬреЛрдкрд░реНрдпрдВрдд рд╕реНрдЯреНрд░реАрдордордзреНрдпреЗ рдбреЗрдЯрд╛ рдЖрд╣реЗ рддреЛрдкрд░реНрдпрдВрдд

рдмрдлрд░рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╡рд╛рдЪрд╛
рдмрдлрд░рдордзреВрди рджреБрд╕рд▒реНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рд╡рд░ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд╛

StringWriterрд╡рд░реНрдЧ

рдЖрдгрдЦреА рдПрдХ рдордиреЛрд░рдВрдЬрдХ рд╡рд░реНрдЧ рдЖрд╣реЗ рдЬреЛ Writerрд╡рд░реНрдЧрд╛рдЪрд╛ рд╡рд╛рд░рд╕рд╛ рдШреЗрддреЛ: рддреНрдпрд╛рд▓рд╛ рдореНрд╣рдгрддрд╛рдд StringWriter. рддреНрдпрд╛рдд рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрд╣реЗ - рдПрдХ StringBufferрдСрдмреНрдЬреЗрдХреНрдЯ. рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░ рдХрд╛рд╣реАрддрд░реА "рд▓рд┐рд╣рддрд╛" StringWriterрддреЗрд╡реНрд╣рд╛ рдордЬрдХреВрд░ рддреНрдпрд╛рдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдмрдлрд░рдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ.

рдЙрджрд╛рд╣рд░рдг:

рдХреЛрдб рдиреЛрдВрдж
StringWriter writer = new StringWriter();
writer.write("Hello");
writer.write(String.valueOf(123));

String result = writer.toString();
рдЯрд╛рд░реНрдЧреЗрдЯ рдХреЕрд░реЗрдХреНрдЯрд░ рд╕реНрдЯреНрд░реАрдо ( StringWriter) рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдлрд░рд▓рд╛ рд▓рд┐рд╣рд┐рд▓реЗрд▓реА рдЕрд╕рддреЗ StringWriter
A рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреНрдпрд╛ рдЖрддреАрд▓ рдмрдлрд░рд╡рд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рд╣реАрд▓реА рдЬрд╛рддреЗ StringWriter

рдСрдмреНрдЬреЗрдХреНрдЯрдЪреА рд╕рд╛рдордЧреНрд░реА рдПрдХрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреЗ

рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, StringWriterрд╡рд░реНрдЧ рдореВрд▓рдд: рд╡рд░реНрдЧрд╛рд╡рд░ рдПрдХ рдЖрд╡рд░рдг рдЖрд╣реЗ StringBuffer, рдкрд░рдВрддреБ StringWriterрд╡рд░реНрдЧ рд╣рд╛ рдкреНрд░рд╡рд╛рд╣ рд╡рд░реНрдЧрд╛рдЪрд╛ рд╡рдВрд╢рдЬ рдЖрд╣реЗ WriterрдЖрдгрд┐ рддреЛ рдкреНрд░рд╡рд╛рд╣ рд╡рд╕реНрддреВрдВрдЪреНрдпрд╛ рд╕рд╛рдЦрд│реНрдпрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рд╕рд░рд╛рд╡ рдордзреНрдпреЗ рд╣реА рдПрдХ рдЕрддрд┐рд╢рдп рдЙрдкрдпреБрдХреНрдд рдорд╛рд▓рдорддреНрддрд╛ рдЖрд╣реЗ.