• File类的基本操作之InputStream字节输入流


    话不多少。我直接把代码贴上来了。有什么问题请给我留言

    package org.mark.streamRW;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    /**
     * 字节输出流:OutputStream。整个IO包中字节输出流的最大父类
     * 字节输入流:InputStream
     * 
     * InputStream使用子类FileInputStream。读取
     */
    public class InStream1 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args)throws Exception{
    		// TODO Auto-generated method stub
    		//第1步:使用File类找到一个文件
    		File file = new File("d:" +File.separator +"test.txt");
    		//第2步:通过子类实例化父类对象
    		InputStream in = null;
    		in = new FileInputStream(file);//通过对象多态性,进行实例化
    		//3.读
    		byte[] b = new byte[1024];
    		in.read(b);
    		//4.关闭
    		in.close();
    		System.out.println(new String(b));//变成字符串输出
    		
    		//遗留问题:留了很多空格。没有那么大,开了1024空间,没有内容的为空
    	}
    
    }
    

    上一个程序的遗留问题:

    package org.mark.streamRW;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    //解决遗留问题
    public class InStream2 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) throws Exception{
    		// TODO Auto-generated method stub
    		//第1步:使用File类找到一个文件
    		File file = new File("d:" +File.separator +"test.txt");
    		//第2步:通过子类实例化父类对象
    		InputStream in = null;
    		in = new FileInputStream(file);//通过对象多态性。进行实例化
    		//3.读
    		byte[] b = new byte[1024];
    		
    		int len = in.read(b);//读取内容
    		//4.关闭
    		in.close();
    		
    		//解决遗留问题。看String提供的方法
    		System.err.println("读入数据的长度:" + len);
    		System.out.println(new String(b,0,len));//变成字符串输出
    		
    		//能不能依据文件大小来开辟空间呢? 
    	}
    
    }
    

    解决依据文件大小来开辟空间

    package org.mark.streamRW;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    //解决依据文件大小来开辟空间
    public class InStream3 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args)throws Exception {
    		// TODO Auto-generated method stub
    		//第1步:使用File类找到一个文件
    		File file = new File("d:" +File.separator +"test.txt");
    		//第2步:通过子类实例化父类对象
    		InputStream in = null;
    		in = new FileInputStream(file);//通过对象多态性,进行实例化
    		//3.读
    		byte[] b = new byte[(int) file.length()];  //解决依据文件大小来开辟空间
    		
    		int len = in.read(b);//读取内容
    		//4.关闭
    		in.close();
    		
    		//解决遗留问题,看String提供的方法
    		System.err.println("读入数据的长度:" + len);
    		System.out.println(new String(b));//变成字符串输出
    	}
    
    }
    

    仅仅适合知道文件大小的输入

    package org.mark.streamRW;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    //仅仅适合知道文件大小的输入
    public class InStream4 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) throws Exception{
    		// TODO Auto-generated method stub
    		//第1步:使用File类找到一个文件
    		File file = new File("d:" +File.separator +"test.txt");
    		//第2步:通过子类实例化父类对象
    		InputStream in = null;
    		in = new FileInputStream(file);//通过对象多态性,进行实例化
    		//3.读
    		byte[] b = new byte[(int) file.length()];  //解决依据文件大小来开辟空间
    		for (int i = 0; i < b.length; i++) {
    			b[i] = (byte) in.read();
    		}
    //		int len = in.read(b);//读取内容
    		//4.关闭
    		in.close();
    		
    		//解决遗留问题。看String提供的方法
    		System.out.println(new String(b));//变成字符串输出
    	}
    
    }
    

    当不知道读取内容有多大的时候。就仅仅能以读取的数据是否为-1为读完的标志

    package org.mark.streamRW;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    //当不知道读取内容有多大的时候,就仅仅能以读取的数据是否为-1为读完的标志
    public class InStream5 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args)throws Exception {
    		// TODO Auto-generated method stub
    		//第1步:使用File类找到一个文件
    		File file = new File("d:" +File.separator +"test.txt");
    		//第2步:通过子类实例化父类对象
    		InputStream in = null;
    		in = new FileInputStream(file);//通过对象多态性。进行实例化
    		//3.读
    		byte[] b = new byte[1024];  //解决依据文件大小来开辟空间
    		int len = 0;
    		int temp = 0;//接受每一个读取进来的数据
    		while ((temp = in.read())!= -1) {
    			//表示还有内容,文件没有读完
    			b[len] = (byte) temp;
    			len++ ;
    		}
    		//4.关闭
    		in.close();
    		
    		//解决遗留问题,看String提供的方法
    		System.out.println(new String(b,0,len));//变成字符串输出
    	}
    
    }
    


    贴的太快了~几乎吧程序关了~

  • 相关阅读:
    将cvs迁移到svn
    wincvs,cvs,svn
    Open Source Camp 北京 2008技术交流盛会 感悟
    21,22,23,24日外出纪要
    10.31,11.1外出纪要
    虚拟经济区一行有感
    29,30号活动预告
    ror 2.1.2migration
    netbeans 6.5 release
    [转载]ruby on rails 每周精选二
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9927075.html
Copyright © 2020-2023  润新知