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

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));//变成字符串输出
	}

}

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118773.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PahoMQTT_mqtt安装

    PahoMQTT_mqtt安装1.安装npminstall paho-mqtt-s2.初始化constPahoMQTT=require(‘paho-mqtt’)constname=newDate().getTime()+’client’constclient=newPahoMQTT.Client(‘www.100link.net’,Number(61615),nam…

    2025年6月15日
    0
  • lookdiv激活码2021【在线注册码/序列号/破解码】

    lookdiv激活码2021【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    37
  • leetcode-1840. 最高建筑高度

    leetcode-1840. 最高建筑高度在一座城市里,你需要建 n 栋新的建筑。这些新的建筑会从 1 到 n 编号排成一列。这座城市对这些新建筑有一些规定:每栋建筑的高度必须是一个非负整数。第一栋建筑的高度 必须 是 0 。任意两栋相邻建筑的高度差 不能超过 1 。除此以外,某些建筑还有额外的最高高度限制。这些限制会以二维整数数组 restrictions 的形式给出,其中 restrictions[i] = [idi, maxHeighti] ,表示建筑 idi 的高度 不能超过 maxHeighti 。题目保证每栋建筑在 res

    2022年8月9日
    3
  • dom4j和jaxp解析工具的

    dom4j和jaxp解析工具的

    2021年12月4日
    29
  • java 读音_java怎么读?[通俗易懂]

    java 读音_java怎么读?[通俗易懂]展开全部US/ˈdʒɑː.və/;UK/ˈdʒɑː.və/。【N-UNCOUNT】Java语言(一种计算机语言,尤用于创建网站)62616964757a686964616fe59b9ee7ad9431333366306461Javaisacomputerprogramminglanguage.Itisusedespeciallyincreatingwebsites.例…

    2022年7月7日
    37
  • unity自学入门_unity 教程

    unity自学入门_unity 教程六本书Unity5权威讲解Unity3DNGUI实战教程Unity5实战使用C和Unity开发多平台游戏Unity3D人工智能编程Unity官方案例精讲UnityShader入门精要1.Unity5权威讲解#目录第1章 Unity5简介 11.1 Unity3D游戏引擎的诞生 21.2 Unity5的优势 21.2.1 支持多平台 21.2.2 集

    2022年8月30日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号