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

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

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

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

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

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

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

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

     1 public static void main(String [] args ){
     2         File file=new File("D:\Test\hello.txt");
     3         
     4         if(file.exists()){    //判断是否有文件或文件夹存在
     5             if(file.isFile()){    //如果是文件
     6                 System.out.println("名称:"+file.getName());
     7                 System.out.println("相对路径:"+file.getPath());
     8                 System.out.println("绝对路径:"+file.getAbsolutePath());
     9                 System.out.println("文件大小为:"+file.length());
    10                 
    11             }
    12             if(file.isDirectory()){
    13                 System.out.println("此文件为目录或文件夹!");
    14             }else{
    15                 System.out.println("文件不存在!");
    16             }
    17             
    18         }
    19     }
    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>【写入文件会覆盖原文件或者会新建新文件】

     

     1 public static void main(String [] args) throws Exception{
     2 //        //声明流对象
     3 //        FileInputStream fis=null;
     4 //        try {
     5 //            fis =new FileInputStream("D:\Test\hello.txt");
     6 //            int data;
     7 //            System.out.println("文件内容为:");
     8 //            
     9 //            //循环读取数据
    10 //        
    11 //                while((data=fis.read())!=-1){
    12 //                    System.out.print((char)data+"");
    13 //                }
    14 //        }catch (FileNotFoundException e) {
    15 //            // TODO Auto-generated catch block
    16 //            e.printStackTrace();
    17 //        }        
    18 //         catch (IOException e) {
    19 //            // TODO Auto-generated catch block
    20 //            e.printStackTrace();
    21 //        
    22 //    } finally {
    23 //        if(fis!=null){
    24 //            try {
    25 //                fis.close();
    26 //            } catch (IOException e) {
    27 //                // TODO Auto-generated catch block
    28 //                e.printStackTrace();
    29 //            }
    30 //        }
    31 //    }
    FileInputStream
     1 public static void main(String [] args){
     2         OutputStream fos=null;
     3         try {
     4             String str="好好学习java";
     5             String a="每天"+10+"分钟";
     6             byte [] words= str.getBytes();        //字节数组
     7             
     8             //创建流的对象,以追加方式写入文件
     9             fos=new FileOutputStream("D:\Test\test.txt");
    10             
    11             //写入文件
    12             try {
    13                 fos.write(words);
    14                 fos.write(a.getBytes());
    15                 System.out.println("Test文件已更新!");
    16             } catch (IOException e) {
    17                 System.out.println("文件创建时失败!");
    18             }
    19             
    20         } catch (FileNotFoundException e) {
    21             // TODO Auto-generated catch block
    22             e.printStackTrace();
    23         }
    24     }
    OutputStream

             2.字符流:Rearder(字符输入流:读取文件)             

         Rearder  fr=new FileRearer(对象名或文件路径)       【可以显示中文】

                            BufferedReader字符输入流:读取文件)             

          BufferedReader  br=new     BufferedReader(只能放Rearder的对象名);

                       BufferedReader的效率比Rearder高些。

                  Writer(字符输出流:写入文件)             

          Writer fr=new File Writer(对象名或文件路径)

     

     1 public static void main(String [] args){
     2         Reader fr=null;
     3         StringBuffer sbf=null;
     4          try {
     5             fr=new FileReader("D:\Test\test.txt");
     6             sbf=new StringBuffer();
     7             int length;
     8             while((length=fr.read())!=-1){
     9                 char c=(char)length;
    10                 sbf.append(c);
    11             }
    12             System.out.println(sbf.toString());    //输出数据
    13         } catch (FileNotFoundException e) {
    14             // TODO Auto-generated catch block
    15             e.printStackTrace();
    16         } catch (IOException e) {
    17             // TODO Auto-generated catch block
    18             e.printStackTrace();
    19         }finally{
    20             if(fr!=null){
    21                 try {
    22                     fr.close();
    23                 } catch (IOException e) {
    24                     // TODO Auto-generated catch block
    25                     e.printStackTrace();
    26                 }
    27             }
    28         }
    29     }
    Reader
     1 public static void main(String [] args){
     2         Reader fr=null;
     3         BufferedReader br=null;
     4         try {
     5             //先创建一个FileReader对象
     6             fr=new FileReader("D:\Test\test.txt");
     7             
     8             //在创建一个BufferedReader对象
     9             br=new BufferedReader(fr);
    10             
    11             //读取每一行数据
    12             String line=br.readLine();
    13             while(line!=null){
    14                 System.out.println(line);
    15                 line=br.readLine();//再次赋值进行判断
    16             }
    17         } catch (FileNotFoundException e) {
    18             // TODO Auto-generated catch block
    19             e.printStackTrace();
    20         } catch (IOException e) {
    21             // TODO Auto-generated catch block
    22             e.printStackTrace();
    23         }finally{
    24             try {
    25                 br.close();    //先关
    26                 fr.close();
    27             } catch (IOException e) {
    28                 // TODO Auto-generated catch block
    29                 e.printStackTrace();
    30             }
    31         }
    32     }
    BufferedReader
     1 public static void main(String [] args){
     2         Writer fw=null;
     3         
     4         try {
     5             //创建一个FileWrite对象
     6             fw=new FileWriter("D:\Test\简介.txt");
     7             
     8             //写入信息
     9             fw.write("我热爱我的团队!"+"
    ");
    10             fw.write("张三"+"
    ");        //
    进行换行
    11             fw.write("18岁");
    12             fw.flush();        //刷新缓冲区
    13         } catch (IOException e) {
    14             // TODO Auto-generated catch block
    15             e.printStackTrace();
    16         }finally{
    17             try {
    18                 fw.close();
    19             } catch (IOException e) {
    20                 // TODO Auto-generated catch block
    21                 e.printStackTrace();
    22             }
    23         }
    24     }
    Writer

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

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

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

     

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

  • 相关阅读:
    面经-新浪
    面经-中兴
    面经-趋势科技
    面经-酷家乐
    面经-大华
    面经-明略科技
    面经-小米
    面经-虹软
    coroutine
    Coroutine 终止协程和异常处理
  • 原文地址:https://www.cnblogs.com/alhy/p/7020370.html
Copyright © 2011-2022 走看看