文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用BufferedReader读取TXT文件中数值并输出最大值

2023-06-22 01:06

关注

本篇内容主要讲解“如何使用BufferedReader读取TXT文件中数值并输出最大值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用BufferedReader读取TXT文件中数值并输出最大值”吧!

BufferedReader读取TXT文件中数值输出最大值

1.题目

txt文件中数字的读取,并输出最大值

如何使用BufferedReader读取TXT文件中数值并输出最大值

输出最大值92

如何使用BufferedReader读取TXT文件中数值并输出最大值

2.BufferedReader 介绍

BufferedReader 函数列表:

BufferedReader(Reader in)BufferedReader(Reader in, int size) void     close()void     mark(int markLimit)boolean  markSupported()int      read()int      read(char[] buffer, int offset, int length)String   readLine()boolean  ready()void     reset()long     skip(long charCount)

3.思路

4.问题

BufferedReader的readLine()方法是阻塞式的, 如果到达流末尾, 就返回null, 但如果client的socket末经关闭就销毁, 则会产生IO异常.,使用后要记得close

使用readLine依次读取各行,处理后输出,如果用以下方法,则会出现除第一行外行首字符丢失,原因就在于br.read() != -1 这判断条件上。 因为在执行这个条件的时候其实它已经读取了一个字符了,然而在这里并没有对读取出来的这个字符做处理,所以会出现少一个字符,如果你这里写的是while(br.readLine()!=null)会出现隔一行少一行!

String str  = null;br=new BufferedReader(new FileReader(fileName));while(br.read()!=-1){  str = buf.readLine()); }

java.lang.NumberFormatException: For input string: " "这里的Integer.valueOf(s2[i]);参数里开头和结尾不能含有空格

   for(int i=0;i<s2.length;i++){  a[i]= Integer.valueOf(s2[i]);    }

5.解决

直接上代码了。。。。。

package test; import java.io.*; public class testtwo {public static void main(String[] args) throws IOException {       try {       //1.打开文件       FileReader fr=new FileReader("test.txt");       //2.使用BufferedReader读取       BufferedReader br=new BufferedReader(fr);       //保存数据       String message = "";         String line = null;         while((line = br.readLine()) != null) {       message = message+" "+line;         }       //去掉两端空格       message = message.trim();                   //转化成数组       String s2[]=message.split(" ");       int a[]=new int[message.length()];       for(int i=0;i<s2.length;i++){        a[i]= Integer.valueOf(s2[i]);       }       //比较最大值       int max=a[0];       for(int j=1;j<a.length;j++){       if(max<a[j]){       max=a[j];       }       }       System.out.println("最大值为"+max);       //4.关闭文件       br.close();       fr.close();              } catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}  } }

6.小结一下

使用BufferedReader读取文件的好处

读取块大小通常是按最适合硬件的大小来读的,因为对于硬件来说,一次读取一块连续数据(比如 1K)和一次读取一个字节需要的时间几乎是一样的(都是一次读操作,只是最终提交的数据量有差异)。带缓冲的 I/O 和不带缓冲的相比效率差异是非常显著的,你可以自行写程序测试。

说到java reader缓存,其实有两层缓存:

OS缓存,把磁盘数据 读入内存,通过read ahead, io scheduler等减少磁盘读取次数.

App缓存,做缓存/预读,即BufferredReader的角色.

BufferredReader的作用:我的理解

减少System Call次数

减少磁盘读取次数

到此,相信大家对“如何使用BufferedReader读取TXT文件中数值并输出最大值”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯