字节查询:
=一次读取一个字节数组的标准循环代码=
(len = fis.read(bs)) != -1
a.先读 fis.read(bs)
b.赋值 len = 实际读取的个数
c.判断 len != -1
/*
分解步骤:
File file = new File(“D:\Develop\Workspack\javase\Demo1\Test01\src\Day15\1.txt”);
FileInputStream in = new FileInputStream(file);
*/
FileInputStream fin = new FileInputStream(new File(“D:\Develop\Workspack\javase\Demo1\Test01\src\Day15\1.txt”));
byte[] bytes = new byte[1024];
int len = 0;
while ((len=fin.read(bytes))!=-1){
System.out.println(new String(bytes,0,len));
}
字符查询:
=一次读取一个字符数组的标准循环代码=
//1.创建字符输入流
FileReader fr = new FileReader(new File(“D:\Develop\Workspack\javase\Demo1\Test01\src\Day16\1.txt”));
//2.创建字符数组
char[] chars1 = new char[1024];
//3.定义接收读取字符的长度
int read = 0;
//4.开始读取文件数据
while ((read=fr.read(chars1))!=-1){
//5.打印结果: 使用new String(char[] value, int offset, int count)构造方法
//分配一个新的 String ,其中包含字符数组参数的子阵列中的字符。
System.out.println(new String(chars1,0,read));
}
//6.关闭资源
fr.close();
//增强(Bufftered)缓冲字节流查询
//1.创建增强输入流
BufferedInputStream buffin = new BufferedInputStream(new FileInputStream(file));
//2.创建长度
byte[] bytes1 = new byte[1024];
int len = 0;
while ((len=buffin.read(bytes))!=-1){
System.out.println(new String(bytes));
}
//增强(Bufftered)缓冲字符流查询
BufferedReader br = new BufferedReader(new FileReader("2.txt"));
//读数据
//String line = br.readLine();
//System.out.println(line);
//=============一次读取一行的标准循环代码===============
String line = ""; //用来保存每次读取的一行数据
/**
* (line = br.readLine()) != null
* 以上代码干了三件事!
* a.读取 br.readLine()
* b.赋值 line = 读到的一行数据
* c.判断 line != null
*/
while ((line = br.readLine()) != null) {
System.out.println(line);
}
//释放资源
br.close();
}
注意:
一次读取一行的标准循环,不会因为有一行为"null"字符串内容或者有一行为""字符串内容而停止
只有读取到文件的末尾,没有内容返回值null才能停止!!
注意:在字节输出会创建new String(),这时可能会误导包:import com.sun.org.apache.xpath.internal.operations.String;删除即可.