zoukankan      html  css  js  c++  java
  • java NIO代码演示三种流

    package com.test;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    
    public class GetChannel1 {
        private static int BSIZE = 1024;
    
        public static void main(String[] args) throws Exception {
            GetChannel1 getChannel1 = new GetChannel1();
            getChannel1.writeFile("file.txt", "hello,");
            getChannel1.addToFile("file.txt", "world");
            getChannel1.readFile("file.txt");
        }
    
        public void readFile(String fileName) throws IOException {
            FileChannel fc = new FileInputStream(fileName).getChannel();
            ByteBuffer buff = ByteBuffer.allocate(BSIZE);
            fc.read(buff);
            /**
             * Flips this buffer. The limit is set to the current position
             *  and then the position is set to zero.
             *   If the mark is defined then it is discarded. 
                After a sequence of channel-read or put operations, 
                invoke this method to prepare for a sequence of channel-write 
                or relative get operations. 
             */
            buff.flip();
            /*
             * Tells whether there are any elements between the current position and the limit.
             */
            while (buff.hasRemaining()) {
                System.out.print((char) buff.get());
            }
            fc.close();
        }
    
        // 向文件中增加内容
        public void addToFile(String fileName, String content) throws IOException {
            FileChannel fc = new RandomAccessFile(fileName, "rw").getChannel();
            fc.position(fc.size());
            fc.write(ByteBuffer.wrap(content.getBytes()));
            fc.close();
    
        }
    
        // 写文件
        public void writeFile(String fileName, String content) throws FileNotFoundException, IOException {
            FileChannel fc = new FileOutputStream(fileName).getChannel();
            fc.write(ByteBuffer.wrap(content.getBytes()));
            fc.close();
        }
    }
  • 相关阅读:
    CodeForces
    CodeForces
    CodeForces 718C && HDU 3572 && Constellation
    CodeForces
    USACO 5.4 tour的dp解法
    10.22~10.28一周经典题目整理(meeting,BZOJ4377,POJ3659)
    codeforces 724D
    codeforces 724C
    hdu5909 Tree Cutting
    hdu5822 color
  • 原文地址:https://www.cnblogs.com/zhaoran8775/p/5798389.html
Copyright © 2011-2022 走看看