使用read()一次读取一个字节
package Demo01_OutPutStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.FileInputStream;
public class Demo04_InPutStream {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("C://File//a.txt");
//往文件中写入东西
fos.write("abcd123".getBytes());
//读取文件中的东西(一次读取一个字节)
FileInputStream fis = new FileInputStream("C://File//a.txt");
/*
int len = fis.read();
System.out.println(len); //97
len = fis.read();
System.out.println(len); //98
*/
int len = 0;
while((len = fis.read()) != -1){ //当读完文件中的元素时,返回值为-1
System.out.print((char)len);//abcd123
}
}
}
使用read(byte[] bytes)一次读取多个字节,读取的个数取决与byte数组的大小,但是我们不知道文件中到底有多少个字节,所以可以使用以下的方法读取文件
package Demo01_OutPutStream;
import java.io.FileInputStream;
import java.io.IOException;
public class Demo05_InputStream {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("C://File//a.txt");
//一次读取多个字节
// byte[] bytes = new byte[4];
// int len = fis.read(bytes);
// System.out.println(new String(bytes));//abcd
// System.out.println(len);//4
//另一种遍历方法
byte[] bytes = new byte[1024];
int len = 0;
while((len = fis.read(bytes)) != -1){//len为读取的有效的字节数
System.out.println(new String(bytes, 0, len));//abcd123
}
}
}