IO流的知识

 字节输出(写入)流:操作的都是字节


    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));
 
 
  }
}







}

猜你喜欢

转载自blog.csdn.net/qzy623569881/article/details/80262265
今日推荐