zoukankan      html  css  js  c++  java
  • JAVA面向对象(8)

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

    导入文件需要导入一个包: 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读取文件操作

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

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

    import java.io.*;

    import java.util.*;

    public class digui {

             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
    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

             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
    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
    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

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

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

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

     

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

  • 相关阅读:
    WPF:DataGrid 自动生成行号
    C#:WinForm之Command
    i.MX RT1010之FlexIO模拟SSI外设
    i.MX RT1010之FlexIO模拟I2S外设
    i.MX RT600之DSP开发环境调试篇
    i.MX RT600之DSP调试环境搭建篇
    i.MX RT600之DMIC外设介绍及应用
    i.MX RT600之I2S外设介绍及应用
    ssm框架思维-登录
    idea里面搭建SSM框架-crud
  • 原文地址:https://www.cnblogs.com/etid/p/7019546.html
Copyright © 2011-2022 走看看