1.读取字节流FileInputStream中的全部字节
package IO;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
public class FileInputStreamTest {
int c=0;
public void inputStream() throws IOException {
InputStream i=new FileInputStream("E:\\xiaoxin\\workspace\\i.txt");
byte bytes[]=new byte[1024];
int e;
int d;
//1.从流中一个一个字节读取
//i.read()返回 0 到 255 范围内的 int 字节值,int的低八位
while((e=i.read())!=-1){
if(e<15){
System.out.print("0");
}
System.out.print(Integer.toHexString(e&0xff)+" ");
//每打印十个字节,换一行
c++;
if(c%10==0){
System.out.println();
}
}*/
//2.从流中批量读取字节数据
//I.read(bytes,0,bytes.length)表示从流中批量读取字节数据到字节数组bytes中,从0位置开始放,最多放bytes.length个字节
//I.read(bytes,0,bytes.length)的返回值表示读到的有效字节个数,如果I.read(bytes,0,bytes.length)=-1,表示EOF表示,没有任何字节可取或者已读取完毕
while((d=i.read(bytes, 0,bytes.length))!=-1){
for(int j=0;j<d;j++){
if(bytes[j]<=15&&bytes[j]>=0){
System.out.print("0");
}
System.out.print(Integer.toHexString(bytes[j]&0xff)+" ");
c++;
if(c%10==0){
System.out.println();
}
}
}
i.close();
}
public static void main(String[] args) {
FileInputStreamTest is=new FileInputStreamTest();
try {
is.inputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.读取字符流FileReader中的全部字符
package IO;
import java.io.FileReader;
import java.io.IOException;
public class InputStreamReaderTest {
public static void main(String[] args) throws IOException {
FileReader isr=new FileReader("E:\\xiaoxin\\workspace\\Imooc2\\i3.txt");
//从流中一个一个字符读取
//isr.read返回 0 到 65535 范围内的 int 字符(相当于两个字节),int的低十六位
int a;
while((a=isr.read())!=-1){
System.out.print((char)a);
}
//从流中批量读取字符
int b;
char chars[]=new char[1024*1024];
while((b=isr.read(chars, 0, chars.length))!=-1){
//把读取的有效字符转换成字符串并输出
String s=new String(chars,0,b);
System.out.println(s);
}
}
}