1. Классификация потоков ввода
Поток персонажей
Читатель
InputStreamReader (поток узлов)
BufferedReader (обработка потоков)
Писатель
OutputStreamWriter (поток узлов)
BufferedWriter (обработка потоков)
Печата
Байтовый поток
InputStream
FileInputStream (потоковая узла)
BufferedInputStream (обработка потоков)
ObjectInputStream (обработка потоков)
Printsstream
OutputStream
FileOutputStream (потоковая узла)
BufferedOutputStream (обработка потоков)
ObjectOutputStream (обработка потоков)
Поток обработки точки останова
Randomaccessfile
2. Использование потоков ввода
1. Использование потоков конверсии
FileInputStream in = new FileInputStream (newFile ("")); ReaderReader = new InputStreamReader (in); // byte к символу fileOutputStreamout = new FileOutputStream (newFile ("")); Writer Writer = new outputstreamwriter (out); // charact to byte2. Сериализация объекта, объект должен реализовать сериализуемый интерфейс
FileOutputStreamFileOutputStream = new FileOutputStream ("c: //users//lx//desktop//record.txt"); ObjectOutputStreamObjectOutputStream = new objectOutputStream (fileOutputStream); objectOutputStream.WriteObject (object); // Записать объект в указанный файл objectOutputStream.close (); FileInputStreamFileInputStream = new FileInputStream ("c: //users//lx//desktop//record.txt"); ObjectInputStreamObjectInputStream = new ObjectInputStream (fileInputStream); object = objectInputStream.readObject (); // Читать объект объекта fileInputStream.lose ();3. Применение точек останова
Открытый класс Copy Extends Thread {// Вы можете использовать MultiThread, чтобы реализовать копию longstart; longend; filesorce; filetargetDir; publicCopy () {} publicCopy (Longstart, Long End, File -Component, File TargetDir) {// Использование конструктора для передачи длины копии, начальной позиции копии, а также целевой файл и файл исходного файла ();); this.start = start; this.end = end; this.sorce = sort; this.TargetDir = targetDir;}@override publicvoid run () {try {randomAccessFilesouceraf = new randomAccessfile (сорсис, "r"); Randomaccessfile (newfile (targetdir, sorce.getname ()), "rw"); souceraf.seek (start); targetraf.seek (start); intlen = 0; byte [] bs = new byte [1024]; longseek; system.out.println (start+"---->"+end+end. souceraf.read (bs))! =-1) {targetraf.write (bs, 0, len); seek = souceraf.getfilepointer (); // Получить позицию точки перерыва if (seek == end) {break;}} targetraf.close (); souceraf.close ();} поймать (ioexcret e); {e.printstacktrace ();}}}4. Использование байтовых потоков
открытый класс test_inputStream {// Использование байтовых потоков для получения содержимого текстового файла, но проблемы склонны к возникновению/* // int длина может быть вне границ общедоступной статический void main (string [] args) бросает ioException {inputStream inputStream = new FileInputStream (new File ("c: //susers//lx/desktop//teststream (" c: //susers//lx/desktop//teststream; byte [] b = new Byte [inputStream.available ()]; inputstream.read (b); String str = new String (b); System.out.println (str); }*/// Закрытый код может показаться общедоступным static void main (string [] args), бросает ioException {file file = new File ("c: //users//lx//desktop//test//33.txt"); inputstream inputstream = new FileInputStream (файл); // Статистика «Фактическая длина». byte [] b = new Byte [2]; StringBuffer sbuffer = new StringBuffer (); while ((len = inputstream.read (b))! =-1) {sbuffer.append (new String (b, 0, len));} system.out.println (sbuffer.toString ());}} // Скопировать файл с использованием byte-потоковой копии (файл sourcefile, filedir) {// fileInpTRemVStRemStRemStRINPTRINPTRINPTRINPTRINPTRINPTRINPTRINPTRINPTREMINPTREMINPTREMINPTREAM null; fileOutputStreamFileOutPutStream = null; fileInputStream = new FileInputStream (SourceFile); filetArgetFile = new File (TargetDir, SourceFile.getName ()); fileOutputStream = new FileOutputStream (targetFile); byte [] b = new Byte [1024]; intlen = 0; ! = -1) {fileOutputStream.Write (b, 0, len);}}5. Использование кэшированных потоков персонажа
publicstatic void main (string [] args) бросает ioException {// реализация кэшированного потока символов для записи файлов inputstreamin = system.in; readerReader = new InputStreamReader (in); BufferedReaderBr = New BufferedReader (ReaderBerberBw = new BuffereWriter (newWriter (new BufferedReader (Reader); File ("src/1.txt")))); strings = ""; while ((s = br.readline ())! = Null) {bw.write (s); bw.newline (); bw.flush (); // Поток символов не забывайте румянец!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}Суммировать
Выше приведено все содержание этой статьи об анализе кода знаний, связанного с Java IO, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!