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

FileInputStream 的读取操作,布布扣,bubuko.com

时间: 2024-08-08 00:27:34

FileInputStream 的读取操作的相关文章

Java 实现Excel的简单读取操作

JAVA实现Excel表单的简单读取操作 实现Excel表单的简单读取操作,首先要导入相关的jar包: 如图所示: 此处贴上代码: public static List<List<String>> readExcel(String path){ List<List<String>> list=new ArrayList<List<String>>(); try { Workbook wb; InputStream is=null; t

java PriorityBlockingQueue 基础的优先级队列,可阻塞的读取操作.

package org.rui.thread.newc; import java.util.ArrayList; import java.util.List; import java.util.Queue; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.PriorityB

VerifyError: Error #1107: ABC 数据已损坏,尝试的读取操作超出范围

VerifyError: Error #1107: ABC 数据已损坏,尝试的读取操作超出范围 项目中,出现报错: VerifyError: Error #1107: ABC 数据已损坏,尝试的读取操作超出范围?问题出现在执行TweenMax 操作出现的,项目中有很多模块在运行期载入swf功能模块,每个swf都是相对独立的程序,载入主程序中做为功能模块,这样主程序中很多功能可以由很多个swf组成,由不同的人员去开发,这是模块开发的一点好处.模块也有很多问题的,上面的报错大都是由于这类开发模式所带

优化shell的文件读取操作

前段时间经常在linux下对文件进行一些读取操作,可在操作得过程中发觉一些脚本的执行效率并不是很理想,下来认真的翻了一下<Mastering UNIX shell Scripting>,学习了一下其中对文件读取和写入得一些方法,在此进行总结记录. 我们对文件得处理往往是通过循环得方式进行的,在循环中解析文件时,需要一种方法把整行得数据读入到一个变量中.最常见的命令是read.该命令很灵活,可用它读取单个字符串也可以读取整行.谈到读取整行,line是另一个可以读一行得命令.但一些操作系统并不支持

JAVA学习--文件流FileInputStream和FileOutputStream操作

* 1.流的分类: * 按照数据流向的不同:输入流  输出流 * 按照处理数据的单位的不同:字节流  字符流(处理的文本文件) * 按照角色的不同:节点流(直接作用于文件的)  处理流 *  * 2.IO的体系 * 抽象基类            节点流(文件流)                                缓冲流(处理流的一种) * InputStream        FileInputStream            BufferedInputStream * Outp

java对properties文件三种不同位置的读取操作

最近在弄项目,由于项目的特殊性出现测试环境和生产环境存在很多的参数配置发生改变,从一开始的一个个配置参数的修改的繁琐操作到现在的配置文件的方式,大大提高了发布效率,现在将这这个进步过程中使用到的properties配置方式做了一个简单的总结分为三种情况如下: ①这种方式是读取在jar包外面的配置文件的路径: public static void main(String[] args) { try{ InputStream in=new BufferedInputStream(new FileIn

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

声明:本文所有例子中的 properties 文件均放在 src 目录下,ecclipse 软件自动增加 一.基本概念 1.1  properties文件,存储格式 键=值. properties文件特点: 1.键值对格式 2." = "等号后面,值前面,的空格,会自动忽略掉 3.值后面的空格,不会忽略 4." = "等号后面的双引号,不会忽略 5." # "井号后面内容,为注释,忽略 1.2 Java的 Properties 类 属性映射(pr

python 文件的写入和读取 操作

写入 >>>f = open('a.txt', 'w')>>>f.write('hello,')>>>f.write('iplaypython')>>>f.close()第一行:用写的方式打开a.txt这个文件,并赋给f      w 也可以写在前面 第二行:f.write方法写入( )括号内的内容第三行:同第二行意义相同,重点要说明下f.write写入的内容会追加到文件中已存在的数据后,也就是就此时的'iplaypython'是在'

MyBatis知多少(17)MyBatis读取操作

上篇展示了如何使用MyBatis执行创建操作表.本章将告诉你如何使用MyBatis来读取表. 我们已经在MySQL下有EMPLOYEE表: 1 CREATE TABLE EMPLOYEE ( 2 id INT NOT NULL auto_increment, 3 first_name VARCHAR(20) default NULL, 4 last_name VARCHAR(20) default NULL, 5 salary INT default NULL, 6 PRIMARY KEY (i