流总结

1,File
a)File表示文件或者文件夹,不包含文件中的数据
      创建File对象,必须使之与文件相关联
      FIle file = new File(“G:\\JAVA”);
      File file = new File(“G:\\JAVA”,“Demo.txt”);
b)创建文件和文件夹
      File f = new File(“G:\\JAVA\\txt.txt”);
      try{
          f.createNewFile();
      }catch(IOException ie){
      //@
      }

      FIle dir = new File("G:\\JAVA\\a\\b");
      dir.mkdirs();//mkdir创建单级文件,mkdirs创建多级
      遍历所有文件及文件夹
public void list(File dir){
              File[] files = dir.listFiles();
          for(File   file:files){
          if(file.isDirectory()){
              list(file);
      }
      sysout.(file.getName());
}

2,字节流
对二进制文件图片等进行的输入输出操作

a)FileInputStream
int read();//按字节读取
int read(byte[] b);//按byte【】个字节读取。返回实际读到的字节数,byte【】未满亦是如实返回;

//自适应文件大小读取
  File f = new File("F:\\test.txt");
              long len = f.length();
              byte[] bs = new byte[(int) len];

                           
                            //创建流
                            FileInputStream fis = new FileInputStream(f);
                            //读取一个字节
                            int b = fis.read();
                            int i = 0;
                            while(b != -1){
                                      //System.out.println(Integer.toHexString(b));
                                      bs[i] = (byte) b;
                                      b = fis.read();
                                      i ++;
                            }
                           
                            //关闭流
                            fis.close(); 
                            //将bs字节数组转换成字符串
                            String s = new String(bs);
                            System.out.println(s);

b)FileOutputStream
FileOutputStream fos = new FileInputStream(String name, true);//true表示追加,缺省表示覆盖

write(int b);                           //写入字节b;
write(byte[] b);                     //写入byte【】;
write(byte[]b,int off,int len) ;//从byte【】第off起写入len个;

String s = "字节流输入输出";
byte[] bs = s.getBytes();
fos.write(bs);

public class Copy {
        public static void main(String[] args) throws Exception{
                  FileInputStream fis = new FileInputStream("C:\\爱丁堡.png");
                  FileOutputStream fos = new FileOutputStream("D:\\xx.png");
                 
                  byte[] b = new byte[1024];
                  int len = fis.read(b);
                  while(len > 0){
                            //写入另一个文件
                            fos.write(b, 0, len);
                            //继续读取下一批字节
                            len = fis.read(b);
                  }
                  fos.close();
                  fis.close();
        }
}


3,字符流
对汉字等进行读写操作的流,避免乱码

      FileReader(File file)                           //   FileReader(String  filename);
//案例读取path
      FileReader fr = new FileReader("path");
      char[] c = new char[10];
      int len = fr.read(c);
      while(len != -1){
          sysout(new String(c,0,len));
          len = fr.read(c);
      }
      fr.close();


FileWrite(String name);
fileWrite.write(char[] i,int off,int len)//输出指定位置的字符
fileWrite.write(String s,int off, int len)//输出字符串off之后的len个字符

FileWrite fw = new FileWrite(File file,true);//true同FileInputStream;

缓冲流等高级流是对低级流的封装,性能高;
关闭高级流则自动关闭低级流

缓冲输入流

//@
      public static void main(String[] args) throws Exception{
                  //高级流
                  BufferedReader br = new BufferedReader(
                                      new FileReader("F:\\test.txt"));
                 
                  //读
                  String line = br.readLine();
                  while(line != null){
                            System.out.println(line);
                            line = br.readLine();
                  }
                 
                  br.close();
        }

缓冲输出流

//@
      public static void main(String[] args) throws Exception{
                  PrintWriter pw =
                                      new PrintWriter(new FileWriter("F:\\test2.txt"));
                  pw.write("aaaaaaaa");
                  pw.write("\r\n");
                  pw.write("bbbbbbbbbb");
                  pw.write("\r\n");
                 
                  pw.close();
        }
字符字节流转换
InputStreamReader字节输入流转换成字符输入流
OutputStreamWriter字节输出流转换成字符输出流

//@
    BufferedReader br = new BufferedReader(
                                      new InputStreamReader(
                                                          new FileInputStream("f:\\test.txt"))
                                      );
                  String line = br.readLine();
                  while(line != null){
                            System.out.println(line);
                            line = br.readLine();
                  }
                  br.close();

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值