Java学习_20220616
IO框架
1. FileInputStream(文件字节输入流)
(1)创建FileInputStream,并指定文件路径
FileInputStream fileInputStream = new FileInputStream("e:\\aaa.txt");
(2)读取文件
- FileInputStream.read(),只能返回一个字节,读取结束后返回-1.
int re = 0;
while((re = fileInputStream.read())!=-1){
// System.out.println(re); //返回的是每个字符的ASCII
System.out.println((char)re);//a b c d .....
}
b. FileInputStream.read(byte[]),一次读取多个字节
byte[] bytes = new byte[10]; //一次读取10个字节
//第一次读
int count = fileInputStream.read(bytes);
System.out.println(new String(bytes));//abcdefghij
System.out.println(count);//10
//第二次读
int count1 = fileInputStream.read(bytes);
System.out.println(new String(bytes));//klmnopqrst
System.out.println(count1);//10
//第三次读
int count2 = fileInputStream.read(bytes);
System.out.println(new String(bytes,0,count2));//uvwxyz
System.out.println(count2);//6
c. FileInputStream.read(byte[])+while语句
byte[] bytes = new byte[100];
int co = 0;
while ((co=fileInputStream.read(bytes))!=-1){
System.out.println(new String(bytes,0,co));//abcdefghijklmnopqrstuvwxyz
}
(3)关闭
fileInputStream.close();
2. FileOutputStream(文件字节输出流)
(1)创建文件字节输出流对象
FileOutputStream fileOutputStream = new FileOutputStream("e:\\bbb.txt");
//new FileOutputStream("e:\\bbb.txt",true);后面+true表示在后面追加而不是覆盖。
(2)写入文件
- FileOutputStream.write(),一次写入一个字节
fileOutputStream.write(97);//a fileOutputStream.write('b'); fileOutputStream.write('c'); //打开文件后 有 abc三个字符
b. FileOutputStream.write(byte[] ),使用字节数组传值
String string = "qwertyuiop";
fileOutputStream.write(string.getBytes());//string.getBytes()获取字符串对应的字节数组
(3)关闭
fileOutputStream.close();
(4)将文件复制一份(先将存储设备中的文件读到内存,后将内存中的内容写到存储设备中)
FileInputStream fileInputStream = new FileInputStream("e:\\001.jpg");
FileOutputStream fileOutputStream = new FileOutputStream("e:\\002.jpg");
byte[] bytes = new byte[1024];
int count = 0;
//边读边写
while((count = fileInputStream.read(bytes))!=-1){
fileOutputStream.write(bytes,0,count);
}
fileInputStream.close();
fileOutputStream.close();
浙公网安备 33010602011771号