Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    3 cách đọc file sử dụng New IO

    Bắt đầu từ phiên bản Java 1.4 Sun đã bổ sung thêm một cách mới để quản lý các thao tác vào ra.

    NIO được xây dựng dựa trên hai hạng mục cơ bản là: buffer và channel. Một vùng đệm (buffer) lưu trữ dữ liệu. Một kênh (channel) biểu diễn một liên kết mở tới một thiết bị vào ra mới, như tệp tin hoặc một socket. Để sử dụng NIO, ta phải nhận một kênh truyền tới một thiết bị vào ra và một vùng đệm để lưu trữ dữ liệu. Sau đó ta có thể thực hiện thao tác trên vùng đệm để vào và ra dữ liệu

    This example shows how we have been reading a text file using old I/O library APIs. It uses a BufferedReader object for reading. Another way can be using InputStream implementation.
    IO


    Mã:
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    public class WithoutNIOExample
    {
        public static void main(String[] args)
        {
            BufferedReader br = null;
            String sCurrentLine = null;
            try
            {
                br = new BufferedReader(
                new FileReader("test.txt"));
                while ((sCurrentLine = br.readLine()) != null)
                {
                    System.out.println(sCurrentLine);
                }
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            finally
            {
                try
                {
                    if (br != null)
                    br.close();
                } catch (IOException ex)
                {
                    ex.printStackTrace();
                }
            }
        }
    }
    NIO

    1) Read a small file in buffer of file size


    Mã:
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    public class ReadFileWithFileSizeBuffer
    {
        public static void main(String args[])
        {
            try
            {
                RandomAccessFile aFile = new RandomAccessFile(
                                "test.txt","r");
                FileChannel inChannel = aFile.getChannel();
                long fileSize = inChannel.size();
                ByteBuffer buffer = ByteBuffer.allocate((int) fileSize);
                inChannel.read(buffer);
                buffer.rewind();
                buffer.flip();
                for (int i = 0; i < fileSize; i++)
                {
                    System.out.print((char) buffer.get());
                }
                inChannel.close();
                aFile.close();
            }
            catch (IOException exc)
            {
                System.out.println(exc);
                System.exit(1);
            }
        }
    }
    2) Read a large file in chunks with fixed size buffer


    Mã:
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    public class ReadFileWithFixedSizeBuffer
    {
        public static void main(String[] args) throws IOException
        {
            RandomAccessFile aFile = new RandomAccessFile
                    ("test.txt", "r");
            FileChannel inChannel = aFile.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate(1024);
            while(inChannel.read(buffer) > 0)
            {
                buffer.flip();
                for (int i = 0; i < buffer.limit(); i++)
                {
                    System.out.print((char) buffer.get());
                }
                buffer.clear(); // do something with the data ,clear/compact it.
            }
            inChannel.close();
            aFile.close();
        }
    }
    3) Faster file copy with mapped byte buffer



    Mã:
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.MappedByteBuffer;
    import java.nio.channels.FileChannel;
    public class ReadFileWithMappedByteBuffer
    {
        public static void main(String[] args) throws IOException
        {
            RandomAccessFile aFile = new RandomAccessFile
                    ("test.txt", "r");
            FileChannel inChannel = aFile.getChannel();
            MappedByteBuffer buffer = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, inChannel.size());
            buffer.load();
            for (int i = 0; i < buffer.limit(); i++)
            {
                System.out.print((char) buffer.get());
            }
            buffer.clear(); // do something with the data and clear/compact it.
            inChannel.close();
            aFile.close();
        }
    }
    Tất cả các đoạn code nói trên sẽ đọc nội dung của tập tin và in nó ra màn hình. Các bạn có thể làm bất cứ điều gì bạn muốn khi các bạn đã đọc nó.

    Happy Learning !!

  2. #2
    Ngày tham gia
    May 2017
    Bài viết
    1
    3 cách đọc file sử dụng New IO, Thanks chủ thread đã chia sẻ bài. Rất hữu ích đối với mình

 

 

Các Chủ đề tương tự

  1. Trả lời: 0
    Bài viết cuối: 07-09-2016, 03:45 PM
  2. Trả lời: 13
    Bài viết cuối: 03-18-2015, 04:54 PM
  3. Duplicate File Remover 3.2.1241 Build 33 - Tìm và xóa file trùng lặp
    Bởi dunghoang trong diễn đàn Phần Mềm Khác
    Trả lời: 0
    Bài viết cuối: 05-19-2012, 03:11 AM
  4. Free File Camouflage - Nghệ thuật ẩn files trong ... một file ảnh
    Bởi vipcuchuoi02 trong diễn đàn Hệ Thống Và Bảo Mật
    Trả lời: 5
    Bài viết cuối: 04-08-2012, 02:04 AM
  5. Trả lời: 4
    Bài viết cuối: 04-03-2012, 08:14 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 04:11 PM.
Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5 Beta 3.
Bản quyền của 2019 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.