Java IO流

InputStream(字节输入流)和Reader(字符输入流)通俗的理解都是读(read)的。

OutputStream(字节输出流)和Writer(字符输出流)通俗的理解都是写(writer)的。

 public class Test {

   public static void main(String[] args) throws Exception{
        File file=new File("aa.txt");//文件默认就创建在你创建的项目下面,刷新即可看到
        System.out.println(file.exists());//判断文件是否存在
        file.createNewFile();//创建文件,不是文件夹
        System.out.println(file.exists());//再次判断是否存在
        System.out.println(file.getName());//获取文件的名字
        System.out.println(file.getAbsolutePath());//获取文件的绝对路径
        System.out.println(file.getPath());//获取文件的相对路径
        System.out.println(file.getParent());//获取文件的父路径
        System.out.println(file.canRead());//文件是否可读
        System.out.println(file.canWrite());//文件是否可写
        System.out.println(file.length());//文件的长度
        System.out.println(file.lastModified());//文件最后一次修改的时间
        System.out.println(file.isDirectory());//判断文件是否是一个目录
        System.out.println(file.isHidden());//文件是否隐藏
        System.out.println(file.isFile());//判断文件是否存在
     }

}

list()获取某个目录下所有的文件或者文件夹:

    File file=new File("D:/");//指定文件目录
               String[] str=file.list();//获取指定目录下的所有文件或者文件夹的名称数组
               for(String s : str){//加强for循环遍历输出
                     System.out.println(s); 
               }
File file=new File("D:/");//指定文件路径
              File[] f=file.listFiles();//获取指定目录下的所有文件或者文件夹的File数组
              for(File fi : f){//加强for循环遍历输出
                     System.out.println(fi);
              }

获取某种格式的文件比如获取某种后缀的图片,并输出文件名:

File file = new File("D:");
        String[] str = file.list();

        for (String s : str) {
            if (s.endsWith(".jpg") || s.endsWith(".png")) {//如果后缀是这种格式的就输出
                System.out.println(s);
            }
        }

FileInputStream和FileOutputStream进行拷贝文本或者图片或者歌曲

FileInputStream fis=new FileInputStream("d:aaa.txt");
               FileOutputStream fos=new FileOutputStream("d:bbb.txt");
                 //如果没有bbb.txt,会创建出一个

                int b;
               while((b=fis.read())!=-1){
                       fos.write(b);
                    }
                 fis.close();
                 fos.close();

FileInputStream和FileOutputStream定义小数组进行读写操作:

   FileInputStream fis = new FileInputStream("d:aaa.txt");
            FileOutputStream fos = new FileOutputStream("d:bbb.txt");
              int len;
              byte[] arr = new byte[1024 * 8];//自定义字节数组

            while((len = fis.read(arr)) != -1) {
                        //fos.write(arr);
                        fos.write(arr, 0, len);//写出字节数组写出有效个字节个数
            }
                //IO流(定义小数组)
                 //write(byte[] b)
                //write(byte[] b, int off, int len)写出有效的字节个数

                fis.close();
                fos.close();

IO流(BufferedInputStream和BufferOutputStream)

FileInputStream fis = new FileInputStream("d:aaa.txt");
                 FileOutputStream fos = new FileOutputStream("d:bbb.txt");

                BufferedInputStream bis=new BufferedInputStream(fis);
                //使用装饰模式,把fis装饰进去bis中。使用缓冲读取速度变快
                BufferedOutputStream bos=new BufferedOutputStream(fos);

                int b;
                while((b=bis.read())!=-1){
                        bos.write(b);
                     }
                bis.close();
                bos.close();
 FileReader fr=new FileReader("d:aaa.txt");
                 int b;
                 while((b=fr.read())!=-1){
                        //System.out.print((char)b);//int类型转为字符型
                     }
                fr.close();

                //FileWriter类的write()方法可以自动把字符转为字节写出
                FileWriter fw = new FileWriter("d:aaa.txt",true);
                 fw.write("d:aaa");
                 fw.close();

                 //字符流的拷贝
                FileReader fr2 = new FileReader("d:aaa.txt");
                 FileWriter fw2 = new FileWriter("d:bbb.txt");

                 int ch;
                 while((ch = fr2.read()) != -1) {
                         fw2.write(ch);
                    }

                 fr2.close();
                fw2.close();
 BufferedReader br=new BufferedReader(new FileReader("d:aaa.txt"));
                BufferedWriter bw=new BufferedWriter(new FileWriter("d:bbb.txt"));
               //BufferedReader和BufferedWriter的使用:
                int b;
                 while((b=br.read())!=-1){
                         bw.write((char)b);
                    }
                 br.close();
                 bw.close();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值