java IO流文件的输入流具体实例解析(一)

来源:互联网 发布:淘宝会员注册网站 编辑:程序博客网 时间:2024/06/07 14:51

这里是在网上找来的几个关于 IO流文件的输入流具体实例代码,接下来试着将其解析得更清楚明白一些,希望初学者看完能有所收获,这篇这个例子的代码是把文件上的字符一个个连续输出

方法/步骤

  1. 网上找来的实例

    import java.io.*;

    public class ReadFile

    {

    public static void readFileByChars(String fileName) {

    File file = new File(fileName);

    Reader reader = null;

            try { 

                reader = new InputStreamReader(new FileInputStream(file));

                int tempchar;

                

                while ((tempchar = reader.read()) != -1) {

                

                    if (((char) tempchar) != '\r') {

                        System.out.print((char) tempchar);

                    }

                }

                reader.close();

            } catch (Exception e) {

                e.printStackTrace();

            }

        }

       public static void main(String args[]) throws IOException

       {

      String path="D:\\f.txt";

      ReadFile rf=new ReadFile();

      rf.readFileByChars(path);

       }

    }

    同时在D盘根目录新建一个f.txt文件

    内容为:

    一二三四五六七八九十零

    一二三四五六七八九十零

    一二三四五六七八九十零

    一二三四五六七八九十零

    一二三四五六七八九十零

    一二三四五六七八九十零

    一二三四五六七八九十零

    一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零

    java IO流文件的输入流具体实例解析(一)
    java IO流文件的输入流具体实例解析(一)
  2. 接下来我们用eclipse运行程序,运行成功并得到一下结果,读取是正常的

    java IO流文件的输入流具体实例解析(一)
  3. 接着我们分析一下程序的一些语句,先从主函数main(String args[])看起

     String path="D:\\f.txt";

    这句是定义一个字符变量存储文件的路径

     ReadFile rf=new ReadFile();

     ReadFile就是程序本身的主类,定义rf调用程序的函数

     rf.readFileByChars(path);

     readFileByChars就是程序定义的一个函数

    java IO流文件的输入流具体实例解析(一)
  4. 接下来看函数readFileByChars(String fileName)

    File file = new File(fileName);

    Reader reader = null;

    定义并初始化了读取文件需要的变量,File,Reader都是java的类,File类是文件对象,Reader类是所有字符输入的父类

     try catch (Exception e)

    是当发生错误时捕捉错误的语句

    java IO流文件的输入流具体实例解析(一)
  5. reader = new InputStreamReader(new FileInputStream(file));

    Reader类是所有字符输入的父类,

    FileInputStream类就是把文件按照字节读入,

    InputStreamReader类就是把读入的字节转化为字符,

    语句的意思就是把文件按照字节读入后,再转成字符,再赋值给reader,

    int tempchar;

    定义一个整型变量,作为读取的字符的暂存变量

    java IO流文件的输入流具体实例解析(一)
  6.  while ((tempchar = reader.read()) != -1)

    while是while循环,tempchar是读取的字符的暂存变量, reader.read()的表示读取文件一个字符,并返回这个字符的数值,read()读到文件没有字符可读时会返回-1

    所以条件的意思是读取文件字符,并返回给tempchar,直到读到文件尾没有字符时,条件就为false结束循环

    java IO流文件的输入流具体实例解析(一)
  7.  if (((char) tempchar) != '\r') {

                        System.out.print((char) tempchar);

                    }

    if是条件判断,(char) 是强制类型转换为字符型,((char) tempchar)把字符的值转换为字符,'\r'是换行字符, System.out.print((char) tempchar);是输出字符

    这个语句的意思是除开'\r'这个字符,其他字符都输出,

    为什么要屏蔽'\r'呢?原因是windows文件换行结尾是\r\n这两字符,读取文件时也会一起读进来,如果这个两个字符一起输出或者连续输出是换一行,但如果分开不连续输出就是换两行,屏蔽'\r'是为为了避多出来的行

    reader.close();

    最后读完后把字符流关闭了

     e.printStackTrace();

    是输出发生错误时错误

    java IO流文件的输入流具体实例解析(一)
  8. 最后我试一下如果不写 if (((char) tempchar) != '\r')这个判断语句会怎么样,

    结果是毫无变化,因为程序是一一个字符连续输出,\n\r不会出现分开不连续输出的情况,所以不会有变化。

    当然可能在非windows编译环境会多出一行。

    java IO流文件的输入流具体实例解析(一)
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 两岁宝宝断奶不喝奶粉怎么办 宝宝两岁了断奶后奶粉不吃怎么办 宝宝断奶两天了不愿意吃奶粉怎么办 一岁四个月宝宝断奶不喝奶粉怎么办 四个月宝宝断奶不喝奶粉怎么办 四个月宝宝断奶后不吃奶粉怎么办 2岁的宝宝不开口说话怎么办 一周岁宝宝断奶不喝奶粉怎么办 八个月宝宝断奶不喝奶粉怎么办 婆家人总是用心机对待娘家人怎么办 婆婆老是背后说我娘家人坏话怎么办 婆家姐带孩子住娘家不走怎么办? 老是想在娘家不想回婆家怎么办 娘家和婆家同时向我借钱怎么办 土地确权后娘家婆家都没有怎么办 结了婚婆家向娘家借钱怎么办? 婆婆的娘家人从我家住怎么办 八个月宝宝断奶后不吃奶粉怎么办 吃母乳的宝宝不吸奶嘴怎么办 宝宝吸了奶嘴不吸母乳怎么办 婴儿吃了奶嘴不吸母乳怎么办 十一个月宝宝断奶不喝奶粉怎么办 孩子三门成绩全不及格家长该怎么办 宝宝快十个月了还不会爬怎么办 小孩写字老把手向里扭曲怎么办 孩子该上四年级了数学差的很怎么办 孩子上三年级了数学成绩好差怎么办 三年级数学老考70-80分怎么办 叛逆期的孩子用死来威胁家长怎么办 叛逆期的孩子抽烟喝酒家长该怎么办 大学遇到不好的老师加课怎么办 两岁的宝宝脾气古怪不听话怎么办 16个月宝宝不听话脾气大怎么办 如果你很害怕去面对一件事怎么办 孩子上幼儿园哭老师不理孩子怎么办 发现幼儿园给孩子吃药片该怎么办 做老师的打学生被家长投诉怎么办 学生认为老师向家长打报告怎么办 老师发打12分的试卷给家长怎么办 孩子在学校顶撞老师不让上学怎么办 被老师骂了不敢去学校怎么办