首页 > 作文

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

更新时间:2023-04-04 01:59:36 阅读: 评论:0

目录
bufferedreader读取txt文件中数值输出最大值1.题目现在我很幸福2.bufferedreader 介绍3.思路4.问题5.解决6.小结一下使用bufferedreader读高考化学知识点总结取文件的好处

bufferedreader读取txt文件中数值输出最大值

1.题目

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

输出最大值92

2.bufferedreader 介绍

bufferedreader 是缓冲字符输入流。它继承于reader。bufferedreader 的作用是为其他字符输入流添加一些缓冲功能。

your的意思bufferedreader 函数列表:

bufferedreader(reader in)bufferedreader(reader in, int size) void     clo()void     mark(int marklimit)boolean  marksupported()int      read()int      read(char[] buffer, int offt, int length)string   readline()boolean  ready()void     ret()long     skip(long charcount)

3.思路

打开文件使用bufferedreader读取readline读取每一行,保存到新个 string 变量中将string中的数字,转换成数组从数组中比较出最大值

4.问题

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

使用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.clo();       fr.clo();              } catch (filenotfoundexception e) {// todo auto-generated catch blocke.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、减少磁盘读取次数

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 01:59:35,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/7506ddf9bab46c6b27dc3db4e9342801.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:使用BufferedReader读取TXT文件中数值,并输出最大值.doc

本文 PDF 下载地址:使用BufferedReader读取TXT文件中数值,并输出最大值.pdf

标签:最大值   文件   缓存   数据
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图