首页 > 代码库 > java面向对象 8

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=http://www.mamicode.com/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("我热爱我的团队!"+"\r\n");
10             fw.write("张三"+"\r\n");        //\r\n进行换行
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形式(标记《可跨平台跨语言》)

java面向对象 8