添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
首页 > 软件编程 > java > BufferedReader读取TXT数值输出最大值

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

作者:热情的rhew

这篇文章主要介绍了使用BufferedReader读取TXT文件中数值,并输出最大值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

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

输出最大值92

2.BufferedReader 介绍

  • BufferedReader 是缓冲字符输入流。它继承于Reader。
  • 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)
  • 使用BufferedReader读取
  • readLine读取每一行,保存到新个 String 变量中
  • 将String中的数字,转换成数组
  • 从数组中比较出最大值
  • 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]);

    直接上代码了。。。。。

    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 block e.printStackTrace();

    6.小结一下

  • 使用BufferedReader中readLine一行一行的读取txt中数字
  • 使用line将要丢失的一行,先保存起来,就不会丢失了
  • String.trim()将数据两端的空格给去掉了
  • 使用BufferedReader读取文件的好处

  • 没有缓冲区时,每次读取操作都会导致一次文件读取操作(就是告诉操作系统内核我要读这个文件的这个部分,麻烦你帮我把它取过来)。
  • 有缓冲区时,会一次性读取很多数据,然后按要求分次交给上层调用者。
  • 读取块大小通常是按最适合硬件的大小来读的,因为对于硬件来说,一次读取一块连续数据(比如 1K)和一次读取一个字节需要的时间几乎是一样的(都是一次读操作,只是最终提交的数据量有差异)。带缓冲的 I/O 和不带缓冲的相比效率差异是非常显著的,你可以自行写程序测试。

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

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

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

    BufferredReader的作用:我的理解

    1、减少System Call次数

    2、减少磁盘读取次数

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
  • java中使用Files.readLines()处理文本中行数据方式
    java中使用Files.readLines()处理文本中行数据方式
    2021-12-12
  • Spingboot JPA CriteriaBuilder 如何获取指定字段
    Spingboot JPA CriteriaBuilder 如何获取指定字段
    2021-12-12
  • springcloud项目快速开始起始模板的实现
    springcloud项目快速开始起始模板的实现
    2021-12-12
  • Java实现办公文档在线预览功能
    Java实现办公文档在线预览功能
    2021-12-12
  • 关于BufferedReader读取文件指定字符集问题
    关于BufferedReader读取文件指定字符集问题
    2021-12-12
  • 使用FileReader采用的默认编码
    使用FileReader采用的默认编码
    2021-12-12
  • java基础知识之FileInputStream流的使用
    java基础知识之FileInputStream流的使用
    2021-12-12
  • 使用BufferedReader读取TXT文件中数值,并输出最大值
    使用BufferedReader读取TXT文件中数值,并输出最大值
    2021-12-12
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号