io流-学习Io流用fileinputstream read用判断==-1可以读取额!=-1出现异常

问题描述

学习Io流用fileinputstream read用判断==-1可以读取额!=-1出现异常

package text6;

impor java.io.*;

public class Demo11_3 {

public static void main(String[] args) {

    File f=new File("f:/bb.txt");
    FileInputStream fis=null;
    try {
        //因为File没有读写的能力,所以需要使用InputStream
         fis=new FileInputStream(f);
        //定义一个字节数组,相当于缓存
        byte []bytes=new byte[1024];
        int n=0;//得到实际读取到的字节数
        while((n=fis.read(bytes))!=-1);
        {
            //把字节转成String
            String s=new String(bytes,0,n);
            System.out.println(s);
        }

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    finally{
        try {
            fis.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

这样读取不了 而把!=-1改成==1就能读取这是为什么,视频上相反了啊。本人初学java求大神指导

解决方案

while((n=fis.read(bytes))!=-1); 能告诉我这个分号肿么回事吗??我日,让我瞅了好久

解决方案二:

想成为一名优秀的程序员,一定要细心哦~不然就连一个小小的分号也能耗上你一天!我也常遇到这种情况~嘻嘻~~~~

解决方案三:

 while((n=fis.read(bytes))!=-1);
        {
            //把字节转成String
            String s=new String(bytes,0,n);//如果读到文件末尾n=-1,bytes数组长度没有-1,越界
            System.out.println(s);
        }
        改成
        while((n=fis.read(bytes))!=-1);
        {
            //把字节转成String
            String s=new String(bytes);
            System.out.println(s);
        }

解决方案四:

int n=0;去掉赋值

解决方案五:

把读取的代码改成下面这样

             int n = fis.read(bytes);
            while(n != -1);
            {
                //把字节转成String
                String s=new String(bytes,0,n);
                System.out.println(s);
                n = fis.read(bytes);
            }
时间: 2025-01-03 07:33:34

io流-学习Io流用fileinputstream read用判断==-1可以读取额!=-1出现异常的相关文章

Java IO流学习总结一:输入输出流

Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148 本文出自[赵彦军的博客] Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入

Java IO流学习总结八:Commons IO 2.5-IOUtils

Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/55051917 本文出自[赵彦军的博客] 在上一篇文章中,介绍了IO FileUtils的常规用法,今天介绍IOUtils的使用. 福利 另外我已经把Commons IO 2.5的源码发布到Jcenter,大家就不用下载jar包了,可以直接引用. Maven引用 <dependency> <group

Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream

Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54894451 本文出自[赵彦军的博客] InputStream |__FilterInputStream |__BufferedInputStream 首先抛出一个问题,有了InputStream为什么还要有BufferedInputStream? Buffere

Java IO流学习总结七:Commons IO 2.5-FileUtils

Java IO流学习总结七:Commons IO 2.5-FileUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54972773 本文出自[赵彦军的博客] 在上面的几篇文章中,介绍了IO的常规用法,今天介绍Commons IO框架的使用. Commons IO简介 Apache Commons IO是Apache基金会创建并维护的Java函数库.它提供了许多类使得开发者的常见任务变得简单,同时减少重复代码,这些代码可

Java IO流学习总结五:转换流-InputStreamReader、OutputStreamWriter

Java IO流学习总结五:转换流-InputStreamReader.OutputStreamWriter 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54923506 本文出自[赵彦军的博客] 类的继承关系 Reader |__ BufferedReader.StringReader.InputStreamReader |__ FileReader Writer |__ BufferedWriter.StringWrite

io流-java问题:学习IO流课程的Filewriter时遇到了实操跟老师所讲,并不一致的情况

问题描述 java问题:学习IO流课程的Filewriter时遇到了实操跟老师所讲,并不一致的情况 老师讲课时说,要在我下图的箭头那个位置多写个",true",代表数据追加,以此可以分批次writer数据到文件里,否则新数据会覆盖前面的旧数据,视频演示时的确也符合他的这个说法,但我下来自己练习时发现,不用加true它自己就会追加数据耶?这是怎么回事,用的软件版本都是一样的,怎么会和教程里不同 解决方案 1楼说的没错,不知你谁否已经理解. 调用一次new Filewriter("

Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream

Java IO流学习总结六:ByteArrayInputStream.ByteArrayOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54946762 本文出自[赵彦军的博客] 类的继承关系 InputStream |__ ByteArrayInputStream OutputStream |__ ByteArrayOutputStream ByteArrayInputStream 可以将字节数组转化为

Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter

Java IO流学习总结四:缓冲流-BufferedReader.BufferedWriter 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54911237 本文出自[赵彦军的博客] 在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流BufferedReader.BufferedWriter.

Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:登录注册IO版本案例(掌握) 要求,对着写一遍. cn.itcast.pojo User cn.itcast.dao UserDao cn.itcast.dao.impl UserDaoImpl(实现我不管)