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++;
        }

FileInputStream 的读取操作的更多相关文章

  1. java 的文件读取操作

    /** * @param filePath 文件的全路径 * 返回我们读取到的文件内容 * **/ public static String readFile(String filePath) { F ...

  2. JAVA之旅(二十六)——装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片

    JAVA之旅(二十六)--装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片 一.装饰设计模式 其实我们自定义re ...

  3. Android设备与外接U盘实现数据读取操作

    现在越来越多手机支持OTG功能,通过OTG可以实现与外接入的U盘等USB设备实现数据传输.关于OTG,可以参考: http://blog.csdn.net/srw11/article/details/ ...

  4. Java 实现Excel的简单读取操作

    JAVA实现Excel表单的简单读取操作 实现Excel表单的简单读取操作,首先要导入相关的jar包: 如图所示: 此处贴上代码: public static List<List<Stri ...

  5. access数据库频繁读取操作会出现 System.Data.OleDb.OleDbException 的异常解决

    asp.net access数据库 本来想着打开一个access数据库连接后,不关闭,下次操作数据了,直接拿来用,谁知道连着测试64次后(大概这么多次),就会出现System.Data.OleDb.O ...

  6. Perl中文件读取操作

    Perl中文件读取操作 http://blog.csdn.net/yangxuan12580/article/details/51506216

  7. Java 对文件的读取操作

    package pack; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...

  8. properties配置文件读取操作总结【java笔记】

    声明:本文所有例子中的 properties 文件均放在 src 目录下,ecclipse 软件自动增加 一.基本概念 1.1  properties文件,存储格式 键=值. properties文件 ...

  9. java:OutputStream和InputStream 输出输入流,FileOutputStream,FileInputStream写入读取流

    1.在java中stream代表一种数据流(源),javaio的底层数据元,---(想像成水龙头)2.任何有能力产生数据流(源)的javaio对象就可以看作是一个InputStream对象既然它能产生 ...

随机推荐

  1. Codevs 1993 草地排水

    1993 草地排水 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地 ...

  2. EasyUI-Accordion

    EasyUI-Accordion Accordion英文翻译就是 手风琴活 或者 可折叠的 参考效果图: 从图中我们其实也可以将这种组件理解为手风琴式的组件. 该组件方便对数据进行分类管理,在有限空间 ...

  3. vSphere虚拟化ESXI6.0+vclient安装部署

      知识部分:一.什么是vSphere?vSphere是VNware公司在2001年基于云计算推出的一套企业级虚拟化解决方案.核心组件为ESXi.如今,经历了5个版本的改进,已经实现了虚拟化基础架构. ...

  4. Algorithm | Random

    随机生成[0,n)中不重复的m个数. class Random { public: Random(int n, int m):n(n), m(m) {} void generate() { srand ...

  5. First Bad Version - LeetCode

    You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...

  6. asp.net获取URL方法

    方法如下: Request.Url.ToString()获取完整url(协议名+域名+站点名+文件名+参数):https://localhost:44300/WebForm1.aspx?abc=123 ...

  7. MyEclipse出错解决

    错误信息: Deployment failure on Tomcat  6.x. Could not copy all resources to C:\Tomcat 6.0\webapps\JavaP ...

  8. 高校师生福利!从现在起,可以免费申请LocaSpace和Wish3D的SDK!

    目前,以管理空间数据见长的GIS已经在全球变化与监测.军事.资源管理.城市规划.土地管理.环境研究.灾害预测.交通管理.文物保护以及政府部门等许多领域发挥着越来越重要的作用. 如何开发出功能丰富又简洁 ...

  9. 2017.2.7 开涛shiro教程-第六章-Realm及相关对象(三)

    原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 第六章 Realm及相关对象(三) 1.准备3个Realm MyR ...

  10. google PLDA + 实现原理及源代码分析

    LDA背景 LDA(隐含狄利克雷分布)是一个主题聚类模型,是当前主题聚类领域最火.最有力的模型之中的一个,它能通过多轮迭代把特征向量集合按主题分类. 眼下,广泛运用在文本主题聚类中. LDA的开源实现 ...