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读取文件操作

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

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

时间: 2024-08-02 16:03:25

java面向对象第十章的相关文章

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

java面向对象的核心思想

Java面向对象-抽象类与接口 1.Java final关键字的使用 package edu.tongji.fni; /*final关键字 * 1.final关键字在java中被称为完结器,表示最终的意思 * 2.final能声明类.方法.属性: * 使用final声明的类不能被继承 * 使用final声明的方法不能被重写 * 使用final声明的变量变成常量,常量是不可以被修改的 */ class People{ //前面加了final下面的类会报错 public void tell(){ }

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

第5篇-JAVA面向对象Ⅰ

第5篇-JAVA面向对象Ⅰ 每篇一句 :面向对象面向君,不负代码不负卿 初学心得: 代码虐我千百遍,我待代码如初恋 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-03| JAVA面向对象 Ⅰ] 1.JAVA作为一种面向对象语言,具有以下基本概念: ● 多态 ● 继承 ● 封装 ● 抽象 ● 类 ● 对象 ● 实例 ● 方法 ● 重载 2.面向对象 什么是面向对象?: 面向对象是一种编程思想 通俗的说:面向对象是一种思考问题的思维方式 为什么使用面向对象以及它的作用 计算机语

《Java面向对象编程第二版》今年出版以来获得读者一致好评。

<Java面向对象编程第一版>自2016年出版以来,承蒙读者们的厚爱,至今已经重印了二十多次,成为国内Java领域里的经典Java技术宝典.在当当网上获得了1500多条好评: http://product.dangdang.com/9186890.html?point=comment_point 应广大读者的要求,为第一版进行了升级,第二版融合了最新的Java8的语言特性,它继续为Java开发人员们提供丰富全面的技术支持和帮助.在京东网上读者们对第二版的好评如潮,一致认为这是Java开发人员必

java面向对象 泛型

这个第一篇知识梳理的博客,希望我可以坚持下去将知识进行总结. 这是在极客学院里看到的视频,目录如下,蛮清晰的.然后我将视频中所说再记忆下. java面向对象之泛型:认识泛型 Java SE 1.5的新特性,泛型的本质是参数化类型,可以代表任何数据类型. java面向对象之泛型:构造函数中使用 class Gen<T>{ private T value; Gen(T value){//构造函数中就泛型就不需要用尖括号了 this.value=value; } public void setVal

JavaSE入门学习24:Java面向对象补充

一Java中的Object类 Object类是所有Java类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认 继承Object类. public class Person{ // } //等价于 public class Person extends Object{ // } Object类中的方法,适合所有子类. 1)toString()方法 在Object类中定义有public String toString()方法,其返回值是String类型,描述当前对

Java程序设计 实验二 Java面向对象程序设计

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏      实验日期:2015.5.7 实验密级:         预习程度:         实验时间: 仪器组次:          必修/选修:            实验序号: 实验名称:       Java面向对象程序设计 实验目的与要求:实验内容 1. 初步掌握单元测试和TDD 2.

java面向对象编程(七)--四大特征之多态

1.多态概念 多态性是对象多种表现形式的体现.比如我们说"宠物"这个对象,它就有很多不同的表达或实现,比如有小猫.小狗.蜥蜴等等.那么我到宠物店说"请给我一只宠物",服务员给我小猫.小狗或者蜥蜴都可以,我们就说"宠物"这个对象就具备多态性. java中的多态,就是指一个引用(类型)在不同情况下的多种状态.也可以理解成,多态是指通过指向父类的指针,来调用在不同子类中实现的方法.也可以理解为"一个接口,多个方法". 实现多态有两种