Ио один вид потока:
пакет com.cxy.ssp.Automic; импорт java.io.FileOutputStream; импорт java.io.IOException; импорт java.nio.ByteBuffer; импорт java.nio.channels.FileChannel; импорт java.util.concurrent.CyclicBarrier; импорт java.util.concurrent.atomic.AtomicReferenceFieldUpdater; импорт java.util.concurrent.atomic.AtomicStampedReference; // 通过NiO实现文件И.О. общественного класс Demo3 { общественный статический недействительный основной (String [] арг) бросает исключение { // 1创建输出流 FileOutputStream FileOutputStream = новый FileOutputStream ( " bas.txt " );
// Строительство канала FileChannel Channel = fileOutputStream.getChannel ();
// Создать буфер в буфер ByteBuffer = ByteBuffer.allocate ( 1024 ); // Строка STR = " Hello World " ;
// данные в буфер buffer.put ( str.getBytes ()); попробовать {
// тег буфер должен быть опорожнен, а затем операцию buffer.flip ();
// записать содержимое канала channel.write (буфер); } улов (IOException E) { Е .printStackTrace (); } fileOutputStream.close (); } }
com.cxy.ssp.Automic пакет; Импорт java.io.FileInputStream; Импорт java.nio.ByteBuffer ,; Импорт java.nio.channels.FileChannel, общественный класс Demo4 { общественный статический недействительный основной (String [] арг) бросает исключение { / / первый построить входной поток, FileInputStream FileInputStream = новый новый FileInputStream ( " bas.txt " ); // текут через канал сбора FileChannel канал = fileInputStream.getChannel (); // подготовить область кэша в ByteBuffer буфера = ByteBuffer.allocate ( 1024 ); //Считывание данных из канала внутри. Байт данных channel.read (буфер); // выводим содержимое системы. OUT .println ( новый новый String (buffer.array ())); // Закрыть fileInputStream.close (); } }
пакет com.cxy.ssp.Automic; импорт java.io.FileInputStream; импорт java.io.FileOutputStream; импорт java.nio.channels.FileChannel; общественный класс Demo5 { общественный статический недействительный основной (String [] арг) бросает исключение { FileInputStream FileInputStream = новый FileInputStream ( " bas.txt " ); FileOutputStream FileOutputStream = новый FileOutputStream ( " b.txt " ); FileChannel канал = fileInputStream.getChannel (); FileChannel channel1= FileOutputStream.getChannel (); channel1.transferFrom (канал, 0 , channel.size ()); channel1.close (); channel.close (); } }
Идеи: первый построен входной или выходной поток, а затем настроить выход или вход потока канала, channle
Создать буфер, работает операции, буферной зоны канала
Приведенный выше код Резюме:
1 вход и выход с точки зрения с компьютером, выводимый в аварию, это выход, компьютер вход
2 выходного поток байт данных, необходимых, чтобы положить внутри буфера,
3 входных потоков: данные не должны быть помещены внутрь буфера, то только канал, из которого данные могут быть считаны