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();
        }
    }
  • 相关阅读:
    [Java] 计算两个日期之间的差(年 月 日)
    Javassist library is missing in classpath! Please add missed dependenc
    $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 区别
    内存管理一
    内存管理四
    内存管理二
    内存分配函数分类
    内存映像文件
    内存管理三
    到底有多少内存
  • 原文地址:https://www.cnblogs.com/zhaoran8775/p/5798389.html
Copyright © 2011-2022 走看看