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

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

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

File类的基本操作之InputStream字节输入流的更多相关文章

  1. File类的基本操作之读出所有目录路径

    package org.mark.file; import java.io.File; /** * File类的基本操作之读出所有文件夹路径 * 假设给定一个文件夹,要求将此文件夹中的所有文件都列出来 ...

  2. InputStream字节输入流

    1.字节输入流——硬盘中数据写出到内存中供解析使用: 根据文件存储原理,8位二进制组成为一个字节,换算后的数值在0-127则查询ASCII码表,其他则查询系统默认表,如简体中文查询GBK表: 2.Fi ...

  3. File 类 的基本操作

    //  File 类(静态类)   File 的缺点:只能用来读小文件 (它是一下子全都读进去) //创建一个文件 // File.Create(@"C:\Users\wbrm\Deskto ...

  4. File类-文件基本操作

    package com.java.io; import java.io.File; import java.io.IOException; import java.math.BigDecimal; i ...

  5. 字节输出流的续写和换行和字节输入流InputStream类&FileInputStream类介绍

    数据追加续写 每次程序运行,创建输出流对象,都会清空目标文件中的数据.如何保目标文件中的数据,还能继续添加新数据呢? public FileOutputStream(File file,boolean ...

  6. Java学习:File类

    Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹 ...

  7. 00090_字节输入流InputStream

    1.字节输入流InputStream (1)通过InputStream可以实现把内存中的数据写出到文件: (2)把内存中的数据写出到文件InputStream此抽象类,是表示字节输入流的所有类的超类. ...

  8. 字节输入流_InputStream类&FileInputStream类介绍和字节输入流读取字节数据

    java.io.InputStream:字节输入流 此抽象类是表示字节输入流的所有类的超类 定义了所有子类共性的方法: int read()从输入流中读取数据的下一个字节 int read(byte[ ...

  9. 01 语言基础+高级:1-8 File类与IO流_day09【字节流、字符流】

    day09[字节流.字符流] 主要内容 IO流 字节流 字符流 异常处理 Properties 教学目标 能够说出IO流的分类和功能 能够使用字节输出流写出数据到文件 能够使用字节输入流读取数据到程序 ...

随机推荐

  1. QT程序启动界面的使用

    当程序的初始化工作比较多,程序可能启动较长时间后,窗口才会显示出来,用户没准会抱怨程序响应的慢. 为了改善用户体验,最好在程序初始化这段时间显示logo,或者其他信息提示用户程序已启动.QT提供了QS ...

  2. 使用AudioTrack播放PCM音频数据(android)

    众所周知,Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的.MediaPl ...

  3. Java 动态代理机制详解(JDK 和CGLIB,Javassist,ASM)

    class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中.这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码.JVM虚拟机读取字节码文件,取出 ...

  4. 你的sscanf用对了吗

    用sscanf解析输入字符串 我们平常编写的很多应用程序都会处理各种各样的输入,这些输入或来自本地文件,或来自网络,或来自用户的输入.今天,让我们来看看sscanf这个和字符串相关的函数可能给你带来的 ...

  5. spring-security 登陆认证之初次探究

    首先,希望还对 spring-security框架完全不懂的新手 下载下Git源码. 引入到项目中.这个短文就是边看源码边聊的.也会启动下项目验证自己的推想. 一.登陆认证的登陆配置项 <for ...

  6. java下socket传文件

    package cn.stat.p4.ipdemo; import java.io.BufferedReader; import java.io.BufferedWriter; import java ...

  7. effectivec++条款18,让接口容易被正确使用,不宜被吴勇

    test* create_test(); shared_ptr<test> create_test();//下面的接口比上面的接口要好 auto_ptr<test> creat ...

  8. 【Oracle】-【权限-ORA-04043】- ORA-04043: object "SYS"."V_$DATABASE" does not exist

    用非dba账号(但赋予了DBA角色)登录一个新的10g数据库想看下版本号, SQL> desc v$instance; ERROR: ORA-04043: object "SYS&qu ...

  9. django 自定用户系统 以及 Django Model 定义语法

    http://www.tuicool.com/articles/jMzIr2 django使用自己的用户系统 http://www.jianshu.com/p/c10be59aad7a Django ...

  10. RxJava 与 Retrofit 结合的最佳实践

    转自:http://gank.io/post/56e80c2c677659311bed9841?from=timeline&isappinstalled=0&nsukey=g1D1Y6 ...