广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中如何读取文件?
  • 624
分享到

java中如何读取文件?

java 2016-06-13 18:06:46 624人浏览 才女
摘要

读取文件有多种方式,基于传统的输入流方式或基于NIO的Buffer缓冲对象和管道读取方式甚至非常快速的内存映射读取文件。java中四种读取文件方式:(推荐:java视频教程)RandoMaccessFile:随机读取,比较慢优点就是该类可读

读取文件有多种方式,基于传统的输入流方式或基于NIO的Buffer缓冲对象和管道读取方式甚至非常快速的内存映射读取文件。

java中四种读取文件方式:(推荐:java视频教程

RandoMaccessFile:随机读取,比较慢优点就是该类可读可写可操作文件指针

FileInputStream:io普通输入流方式,速度效率一般

Buffer缓冲读取:基于nio Buffer和FileChannel读取,速度较快

内存映射读取:基于MappedByteBuffer,速度最快

RandomAccessFile读取

//RandomAccessFile类的核心在于其既能读又能写

public void useRandomAccessFileTest() throws Exception {

    RandomAccessFile randomAccessFile = new RandomAccessFile(new File("e:/nio/test.txt"), "r");

    byte[] bytes = new byte[1024];
    int len = 0;
    while ((len = randomAccessFile.read(bytes)) != -1) {
        System.out.println(new String(bytes, 0, len, "gbk"));
    }

    randomAccessFile.close();
}

FielInputStream读取

//使用FileInputStream文件输入流,比较中规中矩的一种方式,传统阻塞IO操作。

public void testFielInputStreamTest() throws Exception {

    FileInputStream inputStream = new FileInputStream(new File("e:/nio/test.txt"));

    // 使用输入流读取文件,以下代码块几乎就是模板代码
    byte[] bytes = new byte[1024];
    int len = 0;
    while ((len = inputStream.read(bytes)) != -1) {// 如果有数据就一直读写,否则就退出循环体,关闭流资源。
        System.out.println(new String(bytes, 0, len, "gbk"));
    }
    inputStream.close();
}

Buffer缓冲对象读取

// nio 读取

public void testBufferChannel() throws Exception {

    FileInputStream inputStream = new FileInputStream(new File("e:/nio/test.txt"));

    FileChannel fileChannel = inputStream.getChannel();
    ByteBuffer buffer = ByteBuffer.allocate(1024);

    // 以下代码也几乎是Buffer和Channle的标准读写操作。
    while (true) {
        buffer.clear();
        int result = fileChannel.read(buffer);
        buffer.flip();
        if (result == -1) {
            break;
        }
        System.out.println(new String(buffer.array(), 0, result, "gbk"));
    }
    inputStream.close();
}

内存映射读取

public void testmappedByteBuffer() throws Exception {

    FileInputStream inputStream = new FileInputStream(new File("e:/nio/test.txt"));
    FileOutputStream outputStream = new FileOutputStream(new File("e:/nio/testcopy.txt"),true);

    FileChannel inChannel = inputStream.getChannel();
    FileChannel outChannel = outputStream.getChannel();

    System.out.println(inChannel.size());
    MappedByteBuffer mappedByteBuffer = inChannel.map(MapMode.READ_ONLY, 0, inChannel.size());

    System.out.println(mappedByteBuffer.limit());
    System.out.println(mappedByteBuffer.position());

    mappedByteBuffer.flip();
    outChannel.write(mappedByteBuffer);

    outChannel.close();
    inChannel.close();
    outputStream.close();
    inputStream.close();

}

//基于内存映射这种方式,这么写好像有问题。


MappedByteBuffer和RandomAcessFile这两个类要单独重点研究一下。

//TODO 大文件读取

更多java知识请关注Java基础教程栏目。

--结束END--

本文标题: java中如何读取文件?

本文链接: https://www.lsjlt.com/news/1952.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中如何读取文件
    java读取文件的两种方法:java.io和java.lang.ClassLoader// java.io: File file = new File("..."); FileInputStream fis = new...
    99+
    2019-09-20
    java基础 java
  • java中如何读取文件?
    读取文件有多种方式,基于传统的输入流方式或基于nio的Buffer缓冲对象和管道读取方式甚至非常快速的内存映射读取文件。java中四种读取文件方式:(推荐:java视频教程)RandomAccessFile:随机读取,比较慢优点就是该类可读...
    99+
    2016-06-13
    java
  • java如何读取大文件文本
    Java可以使用`BufferedReader`类来读取大文件文本。`BufferedReader`类提供了一个`readLine(...
    99+
    2023-08-08
    java
  • java如何读取配置文件
    Java中可以使用java.util.Properties类来读取配置文件。Properties类提供了一些方法来读取和操作属性文件...
    99+
    2023-08-08
    java
  • java中文件怎么读取
    java的读写操作是学java开发的必经之路,下面我们就来看一下java中文件怎么读。1、使用BufferedReader读取文件BufferedReader是为了提供读的效率而设计的一个包装类,它可以包装字符流。可以从字符输入流中读取文本...
    99+
    2017-06-26
    java
  • 在 Java 中读取 CSV 文件
    CSV 代表逗号分隔值,是一种非常流行的文件类型。CSV文件用于存储由逗号分隔的信息。文件的每一行都用于表示一个数据记录。在本教程中,我们将学习如何读取 CSV 文件并将其内容复制到数组或列表中。在本教程中,我们将使用仅包含三条记录的简单 ...
    99+
    2023-09-06
    java 前端 html
  • Java如何读取整个文件流
    在Java中,可以使用`InputStream`类来读取文件流。以下是一个示例代码,演示如何读取整个文件流并将其打印出来:```ja...
    99+
    2023-08-26
    Java
  • Java中读取二进制文件
    读写二进制文件常用的类有DataInputStream和DataOutputStream。 1、使用字节流读二进制文件         利用DataInputStream类读二进制文件,其实与利用FileInputStream类读文本文件及...
    99+
    2023-08-31
    java jvm
  • Java项目中读取properties文件
    点击(此处)折叠或打开...
    99+
    2023-06-03
  • java怎么读取文件?
    java中可以使用两个类来读取文件:BufferedReader和BufferedInputStream。1、使用 BufferedReader在下面的实例中,我们将看到两种使用 BufferedReader 来读取文件的方法。在这里, 我...
    99+
    2014-12-22
    java教程 java
  • Java读取resources中资源文件路径以及jar中文件无法读取如何解决
    今天小编给大家分享的是Java读取resources中资源文件路径以及jar中文件无法读取如何解决,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。Java读取resources中资源文...
    99+
    2023-07-06
  • java如何监听文件变化并读取文件
    Java中可以使用java.nio.file包中的WatchService类来监听文件的变化,并使用BufferedReader类来...
    99+
    2023-09-26
    java
  • Java如何实现读取配置文件
    在Java中,可以使用`java.util.Properties`类来读取配置文件。以下是一个简单的例子:1. 创建一个名为`con...
    99+
    2023-09-28
    Java
  • java 逐行读取文件(读取文件每一行、按行读取文件)附带示例代码
    BufferedReader 最快的读取每一行 @Test public void bufferReaderTest() { try (BufferedReader buffere...
    99+
    2023-09-11
    java IO
  • java读取zip/jar包中的文件
    1、jar vs zip: jar 文件和 zip 文件都是归档文件,并且都经过压缩。事实上,jar 文件使用与 zip 文件相同的存档和压缩技术,所以 jar 文件实际上是一种特定类型的 zip 文件。(JAR 文件本质上是一个包含可选 ...
    99+
    2023-09-03
    java jar jvm
  • JDK1.7中java.nio.file.Files如何读取文件
    这篇文章给大家分享的是有关JDK1.7中java.nio.file.Files如何读取文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JDK1.7中引入了新的文件操作类java.nio.file这个包,其中有个...
    99+
    2023-05-30
    jdk1.7 java nio
  • python中如何读取txt文件
    这期内容当中小编将会给大家带来有关python中如何读取txt文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、readline()读取第一行内容只读取文本第一行的内容,以字符串的形式返回结果with...
    99+
    2023-06-15
  • java怎么读取xml文件
    在Java中,可以使用Java内置的XML解析器来读取XML文件。下面是一个简单的示例: import javax.xml.pars...
    99+
    2023-10-23
    java
  • java怎么读取zip文件
    要读取zip文件,可以使用Java的java.util.zip包中的ZipInputStream类来实现。下面是一个简单的示例代码,...
    99+
    2023-10-26
    java
  • java中读取文本文件出现乱码
    最近遇到一个问题,Java读取文本文件(例如csv文件、txt文件等),遇到中文就变成乱码。读取代码如下:List lines=new ArrayList(); BufferedReader br = new BufferedReade...
    99+
    2017-06-04
    java 读取 文本文件 乱码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作