zoukankan      html  css  js  c++  java
  • java面向对象第十章

    文件:存储相关记录或放在一起的数据的集合。

    导入文件需要导入一个包: java.io.*;

    File创建对象时需要关联一个字符串:

                    File f=new File("[放入文件的路径关联指定的文件名或目录名]")

    显示目录下所以的文件或目录:File [] files=对象名.listFiles();<输出既包括文件有包括文件夹>

                                    可通过 isFile方法判断是否为文件

    1kb=1024b(字节)   1MB=1024kb

    执行删除操作时删除文件夹时,文件夹里面有子文件时不能删除。

    public static void main(String [] args ){
            File file=new File("D:\Test\hello.txt");
            
            if(file.exists()){    //判断是否有文件或文件夹存在
                if(file.isFile()){    //如果是文件
                    System.out.println("名称:"+file.getName());
                    System.out.println("相对路径:"+file.getPath());
                    System.out.println("绝对路径:"+file.getAbsolutePath());
                    System.out.println("文件大小为:"+file.length());
                    
                }
                if(file.isDirectory()){
                    System.out.println("此文件为目录或文件夹!");
                }else{
                    System.out.println("文件不存在!");
                }
                
            }
        }
    
    File读取文件操作
    File读取文件操作

    递归算法:《方法直接或间接调用自己》

    public static void main(String [] args){
    //        File file=new File("D:\Test");
    //        showInfo(file);
            
            //非菠萝契数列:1 1 2 3 5 8 ......
            //int [] muns=new int[10];    //定义数组
            Scanner input=new Scanner(System.in);
            System.out.println("请输入您要计算的位置:");
            int a=input.nextInt();
            System.out.println(suan(a-1));
        }
        
        private static void showInfo(File f){
            File [] file=f.listFiles();
            for(int i=0;i<file.length;i++){
                System.out.println(file[i].getName());    //得到一级目录中的文件和文件夹
                if(file[i].isDirectory()){    //判断一级目录中是否含有文件夹
                    showInfo(file[i]);//调用自己方法
                }
            }
        }
        
        private static  int suan(int i){
            if(i==0 || i==1){
                return i=1;
            }else{
            return suan(i-2)+suan(i-1);
            }
        }
    
    递归算法
    递归算法

    Java中的流

                    1.字节流:   InputStream(输入流:读取文件)            InputStream   input=new FileInputStream(对象名或文件路径) <不能直接new>【不能显示中文】

                                               OutputStream(输出流:写入文件)          OutputStream output=new   FileOutPutStream(对象名或文件路径) <不能直接new>【写入文件会覆盖原文件或者会新建新文件】

    public static void main(String [] args) throws Exception{
    //        //声明流对象
    //        FileInputStream fis=null;
    //        try {
    //            fis =new FileInputStream("D:\Test\hello.txt");
    //            int data;
    //            System.out.println("文件内容为:");
    //            
    //            //循环读取数据
    //        
    //                while((data=fis.read())!=-1){
    //                    System.out.print((char)data+"");
    //                }
    //        }catch (FileNotFoundException e) {
    //            // TODO Auto-generated catch block
    //            e.printStackTrace();
    //        }        
    //         catch (IOException e) {
    //            // TODO Auto-generated catch block
    //            e.printStackTrace();
    //        
    //    } finally {
    //        if(fis!=null){
    //            try {
    //                fis.close();
    //            } catch (IOException e) {
    //                // TODO Auto-generated catch block
    //                e.printStackTrace();
    //            }
    //        }
    //    }
    
     FileInputStream
    FileInputStream
    public static void main(String [] args){
            OutputStream fos=null;
            try {
                String str="好好学习java";
                String a="每天"+10+"分钟";
                byte [] words= str.getBytes();        //字节数组
                
                //创建流的对象,以追加方式写入文件
                fos=new FileOutputStream("D:\Test\test.txt");
                
                //写入文件
                try {
                    fos.write(words);
                    fos.write(a.getBytes());
                    System.out.println("Test文件已更新!");
                } catch (IOException e) {
                    System.out.println("文件创建时失败!");
                }
                
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    OutputStream
    OutputStream

    2.字符流:Rearder(字符输入流:读取文件)                              Rearder  fr=new FileRearer(对象名或文件路径)                【可以显示中文】

                                    BufferedReader字符输入流:读取文件)       BufferedReader  br=new     BufferedReader(只能放Rearder的对象名);

                                    BufferedReader的效率比Rearder高些。

                              Writer(字符输出流:写入文件)                          Writer fr=new File Writer(对象名或文件路径)

    public static void main(String [] args){
            Reader fr=null;
            StringBuffer sbf=null;
             try {
                fr=new FileReader("D:\Test\test.txt");
                sbf=new StringBuffer();
                int length;
                while((length=fr.read())!=-1){
                    char c=(char)length;
                    sbf.append(c);
                }
                System.out.println(sbf.toString());    //输出数据
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                if(fr!=null){
                    try {
                        fr.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
    
    Reader
    Reader
    public static void main(String [] args){
            Reader fr=null;
            BufferedReader br=null;
            try {
                //先创建一个FileReader对象
                fr=new FileReader("D:\Test\test.txt");
                
                //在创建一个BufferedReader对象
                br=new BufferedReader(fr);
                
                //读取每一行数据
                String line=br.readLine();
                while(line!=null){
                    System.out.println(line);
                    line=br.readLine();//再次赋值进行判断
                }
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    br.close();    //先关
                    fr.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    
    BufferedReader
    BufferedReader
    public static void main(String [] args){
            Writer fw=null;
            
            try {
                //创建一个FileWrite对象
                fw=new FileWriter("D:\Test\简介.txt");
                
                //写入信息
                fw.write("我热爱我的团队!"+"
    ");
                fw.write("张三"+"
    ");        //
    进行换行
                fw.write("18岁");
                fw.flush();        //刷新缓冲区
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    fw.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    
    Writer
    Writer

      3.DataInputStream字节流来输出二进制的文件    是filterInputStream的子类

                        DataOutPutStream字节流来写入二进制的文件   是filterOutputStream的子类

                                二进制文件(乱码)能够增强文件的安全性

    实体类  可实现一个序列化操作的接口  做数据传递的载体    二进制(01)、XML形式(标记《可跨平台跨语言》)

  • 相关阅读:
    ceph pg pool
    linux 开放访问端口
    授予普通用户root权限
    ajax返回json中文是问号
    elasticseach 安装head
    python学习之路8
    JS正则表达式学习
    python学习之路7 前端学习4 jQuery 学习
    python学习之路7 前端学习3
    python 学习总结6 前端学习2
  • 原文地址:https://www.cnblogs.com/xykwh/p/7019645.html
Copyright © 2011-2022 走看看