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));//变成字符串输出
} }
贴的太快了~几乎吧程序关了~
File类的基本操作之InputStream字节输入流的更多相关文章
- File类的基本操作之读出所有目录路径
package org.mark.file; import java.io.File; /** * File类的基本操作之读出所有文件夹路径 * 假设给定一个文件夹,要求将此文件夹中的所有文件都列出来 ...
- InputStream字节输入流
1.字节输入流——硬盘中数据写出到内存中供解析使用: 根据文件存储原理,8位二进制组成为一个字节,换算后的数值在0-127则查询ASCII码表,其他则查询系统默认表,如简体中文查询GBK表: 2.Fi ...
- File 类 的基本操作
// File 类(静态类) File 的缺点:只能用来读小文件 (它是一下子全都读进去) //创建一个文件 // File.Create(@"C:\Users\wbrm\Deskto ...
- File类-文件基本操作
package com.java.io; import java.io.File; import java.io.IOException; import java.math.BigDecimal; i ...
- 字节输出流的续写和换行和字节输入流InputStream类&FileInputStream类介绍
数据追加续写 每次程序运行,创建输出流对象,都会清空目标文件中的数据.如何保目标文件中的数据,还能继续添加新数据呢? public FileOutputStream(File file,boolean ...
- Java学习:File类
Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹 ...
- 00090_字节输入流InputStream
1.字节输入流InputStream (1)通过InputStream可以实现把内存中的数据写出到文件: (2)把内存中的数据写出到文件InputStream此抽象类,是表示字节输入流的所有类的超类. ...
- 字节输入流_InputStream类&FileInputStream类介绍和字节输入流读取字节数据
java.io.InputStream:字节输入流 此抽象类是表示字节输入流的所有类的超类 定义了所有子类共性的方法: int read()从输入流中读取数据的下一个字节 int read(byte[ ...
- 01 语言基础+高级:1-8 File类与IO流_day09【字节流、字符流】
day09[字节流.字符流] 主要内容 IO流 字节流 字符流 异常处理 Properties 教学目标 能够说出IO流的分类和功能 能够使用字节输出流写出数据到文件 能够使用字节输入流读取数据到程序 ...
随机推荐
- C++沉思录之一
一.系统跟踪类Trace的设计过程: step1:简单版 class Trace { public: Trace() { noisy = ; } void print(char* s) { if(no ...
- WEB服务健康状态检测
#!/bin/sh #date:2015-12-07 #filename:check_web.sh #作者:lixingli #Email:1162572407@qq.com #version:v1. ...
- 对html制作新手的一些建议,大牛可以忽略
本篇主要讲前端并给制作html页面的新手一些建议,大牛勿喷大牛可以绕过. 感受:我是搞后端开发的,有时拿到一些静态(Html)页面,看到里面的页面结构命名规则极不规范,就有点不好的 感觉了.当然出现这 ...
- border和outline区别
border和outline区别: border支持box-sizing: border-box,当有边距时,是新增了边框后在按照以前的边距处理 outline不支持box-sizing: borde ...
- C# Dictionary 应用
1.字典定义并添加数据 Dictionary<string, string> dic = new Dictionary<string, string>(); dic.Add(& ...
- Android-版本与api对应关系图
Code name Version API level Lollipop 5.1 API level 22 Lollipop 5.0 API level 21 KitKat 4.4 - 4.4.4 A ...
- for语句应用:乘法表
乘法表: for语句应用: 1: 2: public class chengfa { 3: public static void main(String[] args) { 4: //int i; 5 ...
- Swift 语言函数
import Foundation // 函数声明于实现 func sayHello(name){ print("Hello \(name)") } // 函数调用 sayHell ...
- Objective-C Delegate
ios设计模式中的委托 Delegate 官方文档解释如下: Delegation is a simple and powerful pattern in which one object in a ...
- easyui之combobox(不定时补充)
1,combobox的valuefeild和textfeild这两个属性,可以理解为键值对,即:键valuefeild:值textfeild textfeild是文本框内显示的值,如果要取文本框内的值 ...