专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

java中如何读取文件?

来源:小易整编  作者:小易  发布时间:2024-03-20 08:36
摘要:读取文件有多种方式,基于传统的输入流方式或基于nio的Buffer缓冲对象和管道读取方式甚至非常快速的内存映射读取文件。java中四种读取文件方式:(推荐:java视频教程)1、randomaccessfile:随机读取,比较慢优点就是该类...

java中如何读取文件?

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

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

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

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

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

4、内存映射读取:基于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基础教程栏目。

以上就是java中如何读取文件?的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1151521.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • jsp文件怎么创建

    jsp文件怎么创建

    创建jsp文件的步骤:1、安装和配置java开发环境;2、安装和配置web服务器;3、创建jsp文件;4、编写jsp代码;5、部署和运行应用程序;6、调试和测试。详细介绍:1、安装和配置java开发环境,首先需要在计算机上安装jdk,可以从...

  • excel如何插入单元格

    excel如何插入单元格

    excel插入单元格的方法:首先单击上方【开始】菜单;然后在弹出新窗口以后,选择【单元格】;接着单击【插入】下的小三角,下方出现新窗口,再点击【插入单元格】;最后根据需要选择移动选项即可。excel插入单元格的方法:1、首先单击上方【开始】...

  • 如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发随着移动互联网的迅猛发展,移动端应用的开发变得越来越重要。Vue.js作为一款轻量级、高性能的前端框架,被广泛应用于移动端开发中。本文将介绍如何使用Vue技术进行移动端开发,并给出具体的代码示例。一、准备工作...

  • 什么是电子版文件

    什么是电子版文件

    电子版文件是把纸质文档以计算机软件,如word、excel、pp、cad、photoshop等软件编辑出来,可以通过邮件、u盘、网络或其他传送方式传送的文件。本文操作环境:Windows7系统,DellG3电脑。电子版文件是把纸质文档以计...

  • 什么是构造函数?详解JavaScript中的构造函数

    什么是构造函数?详解JavaScript中的构造函数

    作为原型和原型链的基础,先了解清楚构造函数以及它的执行过程才能更好地帮助我们学习原型和原型链的知识。本篇文章带大家详细了解一下javascript中的构造函数,介绍一下怎么利用构造函数创建一个js对象,希望对大家有所帮助!一个普通的函数被用...

  • 三星电视如何投屏

    三星电视如何投屏

    三星电视可以通过三星电视自带的投屏功能、三星电视官方投屏应用程序和第三方投屏应用程序来投屏。详细介绍:1、三星电视自带的投屏功能,在三星电视遥控器上按下“source”或“输入”按钮,选择“screenmirroring”选项,然后打开要...

  • 如何清理魔兽世界插件缓存

    如何清理魔兽世界插件缓存

    魔兽世界缓存文件1、第一步,找到你电脑桌面上的【我的电脑】图标,然后点击打开。第二步:打开我的电脑后,在我的电脑里面找到wow的安装文件夹。第三步:打开wow的安装文件夹后,在文件夹内选择wtf文件夹直接删除。2、Cache是WOW的缓存文...

  • 如何取消PPT中的所有动画效果和声音

    如何取消PPT中的所有动画效果和声音

    当我们为ppt添加了动画效果后,有时又会发现需要取消这些动画效果。那么,ppt动画效果怎么全部取消?幸运的是,powerpoint提供了一种简单而高效的方法。下面小编就来为大家讲讲如何去掉ppt的动画效果,让观众更好地关注您想要传达的信息。...

  • 周排行
  • 月排行
  • 年排行

精彩推荐