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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python写文件追加 按行追加_python 追加写入

    python写文件追加 按行追加_python 追加写入匹配文本并追加内容

    2022年10月10日
    4
  • OpenStack八大核心组件精讲之—neutron理论知识

    OpenStack八大核心组件精讲之—neutron理论知识OpenStack八大核心组件精讲之—neutron理论知识一、OpenStack网络二、Linux网络虚拟化(一)、Linux虚拟网桥(二)、虚拟局域网(三)、开发虚拟交换机三、openstack网络基础服务1、neutron网络结构2、网络子网与端口3、网络拓扑类型①、Local②、Flat③、VLAN④、VXLAN⑤、GRE⑥、GENEVE⑦、总结4、网络基本架构5、neutron-server6、Neutron遵循OpenStack的设计原则,采用开放性架构,通过插件.代理与网络提供者的配合来实

    2025年6月11日
    3
  • TensorFlow加载cifar10数据集

    TensorFlow加载cifar10数据集加载cifar10数据集cifar10_dir=’C:/Users/1/.keras/datasets/cifar-10-batches-py'(train_images,train_labels),(test_images,test_labels)=load_data(cifar10_dir)注意:在官网下好cifar10数据集后将其解压成下面形式load_local_cifar10.pyfrom__future__importabsolute_importfrom_

    2022年6月22日
    56
  • 艺赛旗胡立军:“机器人工厂”,让RPA风口再起

    艺赛旗胡立军:“机器人工厂”,让RPA风口再起艺赛旗胡立军:“机器人工厂”,让RPA风口再起

    2022年4月22日
    50
  • Vue.js 快速入门

    Vue.js 快速入门

    2022年2月21日
    38
  • xshell怎么退出vi_xshell5

    xshell怎么退出vi_xshell5最近在学习Linux时,初次使用Vi编辑模式编辑文本,但是编辑完成之后,不知道怎么退出编辑模式,然后在网上查找了一番,特此分享给各位老铁:下面总结一些vi退出命令,学习!进入编辑模式,按o进行编辑编辑结束,按ESC键跳到命令模式,然后输入退出命令::w 保存文件但不退出vi编辑:w! 强制保存,不退出vi编辑:wfile 将修改另存到file中,不退出vi…

    2022年9月30日
    2

发表回复

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

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