- 字节输入流:InputStream
- 字节输出流:OutputStream
字节输出流在我另一个博客里有介绍:http://blog.csdn.net/baidu_34750904/article/details/53572111
字节输入流(InputStream)
- 向数组里面读取数据:
package cn.dujiang.demo;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
/**
* 将部分字节数组变为字符串
* @author Dujiang
*
*/
public class TestDemo {
public static void main(String[] args) throws Exception {// 此处直接抛出
// 1、定义输出的文件的路径
File file = new File("F:" + File.separator + "demo" + File.separator + "demo.text");
// 2、需要判断文件是否存在后才可以进行读取
if (file.exists()) { // 文件存在
// 3、使用InputStream进行读取
InputStream input = new FileInputStream(file);
// 4、进行数据读取
byte data[] = new byte[1024]; // 准备一个1024的数组
int len = input.read(data); // 将内容保存到字节数组之中
// 5、关闭数据流
input.close();
System.out.println("【" + new String(data,0,len) + "】");
}
}
}
- (实现1、利用do..while循环)单个字节数据读取
package cn.dujiang.demo;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
/**
* 单个字节数据读取 |-由于一个文件有很多的字节数据,所以如果要读取肯定采用循环的方式完成,由于不确定循环次数,所以应该使用while循环
* 完成,但是下面为了更好的把问题表现出来,所以使用do..while与while两种方式实现。
*
* @author Dujiang
*
*/
public class TestDemo {
public static void main(String[] args) throws Exception {// 此处直接抛出
// 1、定义输出的文件的路径
File file = new File("F:" + File.separator + "demo" + File.separator + "demo.text");
// 2、需要判断文件是否存在后才可以进行读取
if (file.exists()) { // 文件存在
// 3、使用InputStream进行读取
InputStream input = new FileInputStream(file);
// 4、进行数据读取
byte data[] = new byte[1024]; // 准备一个1024的数组
int foot = 0; // 表示字节数组的操作角标
int temp = 0; // 接收每次读取的字节数据
do {
temp = input.read();// 读取一个字节
if (temp != -1) {// 现在是真实的内容
data[foot++] = (byte) temp; // 保存读取的字节到数组之中 ,注意要进行向下转型
}
} while (temp != -1);// 如果现在读取的temp的字节数据不是-1,表示还有内容
// 5、关闭数据流
input.close();
System.out.println("【" + new String(data, 0, foot) + "】");
}
}
}
- (实现2、利用while循环)单个字节数据读取
package cn.dujiang.demo;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
/**
* 单个字节数据读取 |-由于一个文件有很多的字节数据,所以如果要读取肯定采用循环的方式完成,由于不确定循环次数,所以应该使用while循环
* 完成,但是下面为了更好的把问题表现出来,所以使用do..while与while两种方式实现。
*
* @author Dujiang
*
*/
public class TestDemo {
public static void main(String[] args) throws Exception {// 此处直接抛出
// 1、定义输出的文件的路径
File file = new File("F:" + File.separator + "demo" + File.separator + "demo.text");
// 2、需要判断文件是否存在后才可以进行读取
if (file.exists()) { // 文件存在
// 3、使用InputStream进行读取
InputStream input = new FileInputStream(file);
// 4、进行数据读取
byte data[] = new byte[1024]; // 准备一个1024的数组
int foot = 0; // 表示字节数组的操作角标
int temp = 0; // 接收每次读取的字节数据
while((temp = input.read())!= -1){
data[foot ++] = (byte) temp ;
}
// 5、关闭数据流
input.close();
System.out.println("【" + new String(data, 0, foot) + "】");
}
}
}
热门评论
单个字节输入输出效率是不是很低啊