FileoutputStreamDemo.java package file_Stream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class FileoutputStreamDemo {/* * IO流的分类和 1.根据流向划分:输入,输出流 * 2.根
package file_Stream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class FileoutputStreamDemo {
/*
* IO流的分类和 1.根据流向划分:输入,输出流
* 2.根据单位划分:字节流(outputStream,inputStream),字符流(writer,reader)四大基流(都是抽象类)
*
* 操作模板 1.创建源或者目标对象(挖井) 2.创建IO流对象(水管) 3.具体的IO操作;read和write 4.关闭资源 close();
*/
public static void main(String[] args) throws Exception {
// 1.创建数据源
File file = new File("file/BoyNextDoor.txt");
// 2.创建IO流对象
FileOutputStream out = new FileOutputStream(file,false);//true表示添加,默认或者false就是覆盖
// 3.具体的IO操作
//out.write(65);//void write(int b)把一个字节输出到文件中
out.write("I AM AN ARTIST".getBytes());//void write(byte []b)把数组b全部输出到文件中 result: I AM AN ARTIST
// out.write("Iamaartist".getBytes(), 0, 5);//void write(byte[] b, off, len)把数组中的数据从off索引位置开始,输出len长度个到文件中 result:Iamaa
//out.write("Iamaartist".getBytes(), 0, "Iamaartist".length());// result:Iamaartist
// 4.关闭资源
out.close();
}
}
FileInputStreamDemo.java
package file_Stream;
import java.io.File;
import java.io.FileInputStream;
import java.util.Arrays;
public class FileInputStreamDemo {
//演示文件字节输入流
public static void main(String[] args) throws Exception {
//1.创建数据源
File f=new File("file/BoyNextDoor.txt");
//2.创建IO对象
FileInputStream in=new FileInputStream(f);
//3.具体操作
/*
read() 从此输入流中读取一个数据字节。
int read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
int read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
* */
/*int data=in.read();
System.out.println(data);*/
/*//文件中只有7个字节,所以数组后三位是0
byte[] buffer=new byte[10];
System.out.println(Arrays.toString(buffer));//[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
int data=in.read(buffer);
System.out.println(Arrays.toString(buffer));//[65, 66, 67, 68, 69, 70, 71, 0, 0, 0]
System.out.println(data);//data返回的是文件中有的字节数。
*/
/*byte[] buffer=new byte[10];
System.out.println(Arrays.toString(buffer));
int data=in.read(buffer, 2, 6);
System.out.println(Arrays.toString(buffer));//[0, 0, 65, 66, 67, 68, 69, 70, 0, 0]
System.out.println(data);//6
*/
byte []buffer=new byte[5];
int len=-1;//表示当前读取的字节总数,如果为-1就是文件末尾了。
//len=in.read(buffer);表示当前读取的字节,当他不等于-1说明文件还没有读完
while( (len=in.read(buffer))!=-1){
String str=new String(buffer,0,len);
System.out.println(str);
}
//4.关闭资源
in.close();
}
}
