• FileInputStream 的读取操作


    package xinhuiji_day07;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;

    public class TestFileInputStream {

        /**
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
            
            // 1 ,先定义要操作的文件
            String str = File.separator;  //得到当前系统的盘符
            //String path = File.separator+"home"+File.separator+"han"+File.separator+"FileOutPutStream.txt";
            String path = str+"home"+str+"han"+str+"FileOutPutStream.txt";
            File file = new File(path);
            // 2,通过子类实例化父类
            InputStream in = null;
            in = new FileInputStream(file);
            
            //byte[] bytes = new byte[1024];//直接这样开辟空间的话,我们并不知道file的实际空间是多大,会造成占用大量内存的
                                           //的结果,我们可以通过File类先获得file的大小,再定义数组的大小
            
            byte[] bytes = new byte[(int) file.length()];  // 定义数组用于存储读到的数据
            
            // 3 读数据
            
            //第一种方法
    //        int len = in.read(bytes);
    //        System.out.println("向数组中写入的字符长度:"+len);
            
            //第二种方法
            for(int i = 0;i<file.length();i++){
                bytes[i] = (byte) in.read();
            }
            
            
            //第三种方法
            
    //        String info = new String(bytes,0,len);
            String info = new String(bytes);
            System.out.println(info);
            // 4 。关闭输入流
            in.close();
        }

    }
    /////////////////////////////////////////////////////////////////////////////

     //第三种方法      。前两种方法都是知道file的长度,如果不知到file的长度就应该使用read()方法

    byte[] bytes = new byte[1024];  
            int len = 0;//用于记录读到的字符个数
            
            int temp = 0;//用于记录in.read()的返回值
            //read()方法只有在读到文件末尾时返回值为-1
            while((temp = in.read()) != -1){
                bytes[len] = (byte) temp;
                len++;
            }

  • 相关阅读:
    天国近了(一) 揭穿OOP神话
    自然思考:流程任意定制的一个问题
    风水占卜是迷信吗?
    飘浮的鸡蛋壳真正的原理研究
    ListView
    Java与WCF交互(一):Java客户端调用WCF服务 (转)
    WPF ListView 数据绑定
    .NET中Trace类和Debug类的应用举例(转)
    Print Visual Tree
    EntityFramework之领域驱动设计实践(六)(转)
  • 原文地址:https://www.cnblogs.com/siashan/p/3853381.html
Copyright © 2020-2023  润新知