InputStream
package byteIO;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
/*
* 读取文件
* 1 建立联系 : File对象 (源头)
* 2 选择流 : 文件输入流 (InputStream , FileInputStream)
* 3 操作 : byte[] car = newbyte[1024] + read+读取大小
* 输出
* 4 释放资源 : 关闭
*/
public class TestInputStream {
public static void main(String[] args) {
// 1 : 建立联系 File对象
File src = new File("E:/jar/a/1.txt");
// 2 : 选择流
InputStream is = null;
try {
is = new FileInputStream(src);
// 3 : 操作不断读取(是利用缓冲数组)
byte[] car = new byte[10];
int length; //接受实际读取大小
//循环读取
while((length = is.read(car)) != -1){
//输出 字节数组转换成字符串
String info = new String(car,0,length);
//如果文件中包含中文,有可能乱码,因为中文占两个字符
System.out.println(info);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("文件不存在");
} catch (IOException e) {
e.printStackTrace();
System.out.println("读取文件失败");
}finally{
try {
// 4 : 释放资源
if(is != null){
is.close();
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("关闭输入流失败");
}
}
}
}
FileInputStream
package byteIO;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class TestFileInputStream {
public static void main(String[] args) {
int b = 0;
FileInputStream in = null;
try {
//此时,管道已经接通
in = new FileInputStream("E:/jar/TestDataType.java");
} catch (FileNotFoundException e) {
System.out.println("找不到指定文件");
//退出
System.exit(-1);
}
try {
long num = 0;
//如若读到中文不能显示,应将in.read();改为in.Fileread();
//向外读数据,此处不等于-1,就相当于这个文件还没有读到结尾
while((b = in.read()) != -1){
System.out.print((char)b);
num++;
}
in.close();
System.out.println("共读取了"+num+"个字节");
} catch (IOException e) {
System.out.println("文件读取错误");
System.exit(-1);
}
}
}