1. 程式人生 > >NIO 之 檔案通道操作

NIO 之 檔案通道操作

public class FileChannelDemo {

    public static void main(String[] args) {
        fileChannelDemo();
    }

    private static void fileChannelDemo() {
        try {
            //處理中文亂碼
            Charset gbk = Charset.forName("GBK");
            CharsetDecoder dbkDecoder = gbk.newDecoder();

            //1- 定義一個緩衝區
            ByteBuffer buff = ByteBuffer.allocate(1024);

            CharBuffer charBuffer = CharBuffer.allocate(1024);

            //2- 通過檔案輸入流獲得檔案通道物件(讀取操作)
            FileInputStream fileInputStream = new FileInputStream("e://a.txt");
            FileChannel inChannel = fileInputStream.getChannel();

            //3- 通過檔案輸出流追加檔案內容
            FileOutputStream fileOutputStream = new FileOutputStream("e://b.txt",true);

            FileChannel outChannel = fileOutputStream.getChannel();

            //4- 讀取資料
            buff.clear();
            int len = inChannel.read(buff);
            System.out.println("len == " + len);
            buff.flip();
            dbkDecoder.decode(buff,charBuffer,false);
            String data = new String(charBuffer.array(),0,len);
            System.out.println(data);

            //5- 關閉輸入流
            inChannel.close();

            //6- 寫資料
            buff.flip();
            buff.clear();
            buff = ByteBuffer.wrap(data.getBytes("GBK"),0,data.length());
            outChannel.write(buff);

            //7- 關閉輸出流
            outChannel.close();
        } catch (Exception e) {

        }

    }

}

相關推薦

NIO 檔案通道操作

public class FileChannelDemo { public static void main(String[] args) { fileChannelDemo(); } private static void fil

JAVA NIO檔案通道

1.簡介 通道是 Java NIO 的核心內容之一,在使用上,通道需和快取類(ByteBuffer)配合完成讀寫等操作。與傳統的流式 IO 中資料單向流動不同,通道中的資料可以雙向流動。通道既可以讀,也可以寫。這裡我們舉個例子說明一下,我們可以把通道看做水管,把快取看做水塔,把檔案看做水庫,把水

java nio channel通道(二)

java niojava nio 通道上一篇文章裏就講述過,channel總是寫數據的時候,要先把數據寫入到bytebuffer,讀數據的時候總是要先從channel中讀入到bytebuffer。如下圖,這個圖是好多知名博客常用的圖,很好理解這個channel。channel分為一下幾種:FileChanne

Linux高階程式設計基礎——檔案系統程式設計檔案寫入操作

檔案系統程式設計之檔案寫入操作——實驗題 //編寫程式碼,完成以下功能: //1.建立檔案file1,寫入字串“abcdefghijklmn”; //2.建立檔案file2,寫入字串“ABCDEFGHIJKLMN”; //3.讀取file1中的內容,寫入file2,使file2中的字串內容為“a

OC學習篇---檔案操作

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

java檔案基本操作

package com.bnc.www; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; imp

shell程式設計範例檔案系統操作

前言     準備了很久,找了好多天的資料,還不知道應該如何開始動筆寫:因為擔心“拿捏”不住,所以一方面繼續查詢資料,一方面思考如何來寫。作為“shell程式設計 範例”序列的一部分,希望它能夠很好地幫助shell程式設計師理解如何用shell命令來完成和Linux系統

HTTP斷點續傳與斷點上傳 -- 檔案操作

不管是下載還是上傳,斷點的時候,就需要對檔案流進行精確的操作。 1、下載斷開了,已經下載的資料儲存到檔案,再次繼續下載的時候需要從檔案的尾巴繼續追加資料; 2、同理上傳也是一樣,http通訊中有可能斷開或者丟包的情況,就需要重傳指定的檔案片; 我封裝的這個

Java的NIOChannel通道

1.Channel 通道的簡介 java的NIO的通道類似流,但是又有一些不同: - 既可以從Channel中讀資料也可以往Channel裡面寫資料;但是流的讀寫一般是單向的。 - Channel

java安全編碼指南:檔案IO操作

[toc] # 簡介 對於檔案的IO操作應該是我們經常會使用到的,因為檔案的複雜性,我們在使用File操作的時候也有很多需要注意的地方,下面我一起來看看吧。 # 建立檔案的時候指定合適的許可權 不管是在windows還是linux,檔案都有許可權控制的概念,我們可以設定檔案的owner,還有檔案的pe

java大檔案讀寫操作,java nio MappedByteBuffer,高效檔案/記憶體對映

原文地址:https://www.cnblogs.com/lyftest/p/6564282.html   java處理大檔案,一般用BufferedReader,BufferedInputStream這類帶緩衝的Io類,不過如果檔案超大的話,更快的方式是採用MappedByteB

Java NIO系列七 AsynchronousFileChannel非同步檔案通道

Java7中新增了AsynchronousFileChannel作為nio的一部分。AsynchronousFileChannel使得資料可以進行非同步讀寫。下面將介紹一下AsynchronousFileChannel的使用。 建立AsynchronousFileChann

Java基礎知識檔案操作(三)——NIO獲取檔案屬性

1.NIO簡單介紹 JDK1.4開始,Java提供一系列改進的輸入/輸出處理的新功能,被稱為New IO(NIO),在java.nio包下。 Channel(通道)和 Buffer(緩衝)是NIO中兩個核心物件。 JDK1.7對原有的NIO進行了改進,被稱為NIO.2。 N

【JavaNIO的深入研究4】內存映射文件I/O,大文件讀寫操作,Java nioMappedByteBuffer,高效文件/內存映射

int start lib 交換文件 bsp 沒有 res collected str time 內存映射文件能讓你創建和修改那些因為太大而無法放入內存的文件。有了內存映射文件,你就可以認為文件已經全部讀進了內存,然後把它當成一個非常大的數組來訪問。這種解決辦法能大大簡化修

NIO通道(Channel)的原理與獲取以及數據傳輸與內存映射文件

rom 讀取數據 mode catch dst 1.7 rto class frame 通道(Channel):   由java.nio.channels包定義的,Channel表示IO源與目標打開的連接,Channel類似於傳統的“流”,只不過Channel本身不能直

node總結檔案操作系列(二)

接著上一篇部落格來啊,咱們繼續看非同步模式下關閉檔案的語法格式: fs.close(fd, callback) 引數描述如下: fd - 通過 fs.open() 方法返回的檔案描述符。 callback - 回撥函式,沒有引數。 例項如下: var

node總結檔案操作系列(一)

Node.js 提供一組類似 UNIX(POSIX)標準的檔案操作API,我們來看下Node 匯入檔案系統模組(fs)語法,如下: var fs = require("fs") Node.js 檔案系統(fs 模組)模組中的方法均有非同步和同步版本,例如讀取檔案內容的函式有非同步的 fs

Java NIO通道Channel分析

目錄 簡介 檔案通道FileChannel Socket通道 其他內容                              &n

linux檔案及目錄許可權的相關操作

1.檔案許可權控制 首先我們先搞清一個問題:許可權存在的意義?  在我們的印象中檔案是用來存放實際資料的,目錄是用來存放檔案的,但其實目錄的主要作用是用來記錄檔名列表,檔名與目錄有強烈的關聯。許可權就是使用者或者其他人對這些目錄以及檔案能進行些什麼操作。 檔案的檢視 當我們建立

python基礎檔案操作和簡單的類

檔案操作 #檔案刪除 import os path=".\\data\\" for s in os.listdir(path): filename=path+s print(filename) # os.remove("test.txt") #檔案開啟 f=open('test.