OutputStream(抽象类)
FileOutputStream :专门用来想文件中写字节
固定步骤:
1,输出流关联文件
2,利用输出流想文件中写字节
3,关流释放资源
构造方法
FileOutputStream(String name) 可以不用创建文件 当我们指定文件路径的时候可以帮我们自动创建
如果创建不了 则会报错 FileNotFoundException
如果已经创建了文件 或者文件里写了内容 贼会清空内容
FileOutputStream(String name boolean append) 如果append为true则每次写都会往文件末尾续写
不再清空文件
如果为false 则每次调用都会清空文件
成员方法
void write(int b) 向文件写入一个字节
void write(byte[] b) 将字节数组里每个字节都写入
void write(byte[] b, int off,int len) 将字节数组里的一部分写入文件
在字节数组b中从 off开始 写len个字节 (包含off)
*/
//windows系统中换行的标志位“ \r\n ”
public class 字节输出写入流 {
public static void main(String[] args) throws IOException {
// 1,输出流关联文件/用流关联文件
FileOutputStream fos=new FileOutputStream("字节输出流.txt");//每执行一次都会清空文件内容
// 2,利用输出流想文件中写字节
// fos.write(100);
// //---------------
// byte[] a= {100,101,102};
// fos.write(a);
//---------------
//String 类里 String.getBytes();方法 返回的是字节数组
// 将字符串转化为字节数组
String b="吉吉丫丫";
byte[] c=b.getBytes();
// fos.write(c);
//---------------
byte[] d= {65,66,67,68};
fos.write(d, 0, 3);
//---------------
//3,关流释放资源
fos.close();
字节输入(读取)流
InputStream(抽象类)
FileInputStream
构造函数:
FileInputStream(String name)不会清空文件内容 如果被读取的文件不存在直接报错 FileNotFoundException
不会自动创建文件
成员方法
1. int read(); 从文件中读取一个字节 并且返回这个字节,,读取的是字节对应的ASCII值
每次通过同一个输入流对象调用read()方法会按照顺序读取文件中的字节
当读到没有字节的时候 ,read()方法返回-1
2. int read(byte[] b) 从该输入流读取最多 b.length个字节的数据为字节数组
尽可能的往指定的字节数组中装字节,返回每次读到的有效字节个数
步骤 :1.用输入流关联文件
2.用输入流里的方法读取文件里的字节
3.关流释放资源
*
*/
public class 字节输入读取流 {
public static void main(String[] args) throws IOException {
//1.用输入流关联文件
FileInputStream fis=new FileInputStream("字节输入流.txt");
//2.用输入流里的方法读取文件里的字节
/*int b=fis.read();
System.out.println(b);//输出文件中内容对应的ASCII值
System.out.println((char)b);//将内容转成char
//__________________
//当读到没有字节的时候 ,read()方法返回-1 所以用下面这个方法
int a;
while((a=fis.read())!=-1) {
System.out.println((char)a);
}*/
//__________________
byte[] barr=new byte[1]; //创建一个数组来保存 字节
// int len=fis.read(barr);// 读取字节的个数
//String(byte[] bytes) 将字节数组中的字节转换字符,最终是一个字符串
// System.out.print(new String(barr));
int length;
while((length=fis.read(barr))!=-1) {
//String(byte[] bytes, int offset, int length) //将bytes数组从指定索引位置开始转换length个字节
System.out.println(new String(barr,0,length));
}
}
}