第三章JAVA高级特性IO操作

使用File类操作文件或目录属性

package com.vp.day03.demo01;

import java.io.File;
import java.io.IOException;

/**
 * 使用File类操作文件或目录属性
 */
public class Test {
    public static void main(String[] args) {
        File file=new File("E:\\QQ");
        //判断文件或目录是否存在
        if(file.exists()){
            System.out.println("存在");
        }else {
            System.out.println("不存在");
        }

        //判断是否是文件
        if(file.isFile()){
            System.out.println("是文件");
        }else {
            System.out.println("不是文件");
        }

        //判断是否是目录
        if(file.isDirectory()){
            System.out.println("是目录");
        }else {
            System.out.println("不是目录");
        }

        //返回此对象表示的文件的相对路径名
        System.out.println("相对路径:\t"+file.getParent());

        //返回此对象表示的文件的绝对路径名
        System.out.println("绝对路径:\t"+file.getAbsolutePath());

        //返回此对象表示的文件或目录的名称
        System.out.println(file.getName());

        //删除此对象指定的文件或目录
        File file1=new File("E:\\新建文本文档.txt");
        System.out.println(file1.delete());

        //创建名称的空文件,不创建文件夹
        File file2=new File("E://text.text");
        try {
            file2.createNewFile();
            System.out.println(file2.getName());
        } catch (IOException e) {
            e.printStackTrace();
        }

        //返回文件的长度,单位为字节,如果文件不存在,则返回OL
        System.out.println(file.length());


    }
}

使用FileInputStream类读取文本文件

需求说明:按照如下的四个步骤,使用FileInputStream类读取文本文件,效果如下图所示。

(1)引入相关的类,java.io.IOException和java.io.FileInputStream;

(2)构造文件输入流FileInputStream 对象,比如为:FileInputStream fis= new FileInputStream("c:\\test.txt");;

(3)读取文本文件的数据,fis.available();fis.read();;

(4)关闭文件流对象:fis.close();;

package com.vp.day03.demo02;

import java.io.FileInputStream;
import java.io.IOException;

/**
 *需求说明:按照如下的四个步骤,使用FileInputStream类读取文本文件,效果如下图所示。
 (1)引入相关的类,java.io.IOException和java.io.FileInputStream;
 (2)构造文件输入流FileInputStream 对象,比如为:FileInputStream fis= new FileInputStream("c:\\test.txt");;
 (3)读取文本文件的数据,fis.available();fis.read();;
 (4)关闭文件流对象:fis.close();;
 */
public class Test {
    public static void main(String[] args) throws IOException {
        //读取的字节流
        FileInputStream fileInputStream=new FileInputStream("E:\\test2.txt");
        //读取的字节数
        int available = fileInputStream.available();
        System.out.println("可读取的字节数:"+available);
        //进行读取操作
        byte[] bytes = new byte[1024];
        fileInputStream.read(bytes);
        String content=new String(bytes);
        System.out.println("文件内容为:"+content);
        //关闭文件流对象
        fileInputStream.close();
    }
}

复制文本文件

需求说明:文件“我的青春谁做主.txt”位于D盘根目录下,要求将此文件的内容,按照如下步骤复制到C:\myFile\my Prime.txt中,复制完成后输出如下图所示信息,检查文件是否已经写入目标位置。

(1)创建FileInputStream输入流对,负责读取D:/ 我的青春谁做主.txt文件;

(2)创建FileOutputStream输出流对象;

(3)创建中转站数组byte[] words,存放每次读取的内容;

(4)通过while循环实现文件读取;

(5)操作完成后,记得关闭流;

package com.vp.day03.demo04;

import java.io.*;

/**
 * 需求说明:文件“test.txt”位于D盘根目录下,要求将此文件的内容,按照如下步骤复制到E:\test4.txt中,复制完成后输出如下图所示信息,检查文件是否已经写入目标位置。
 (1)创建FileInputStream输入流对,负责读取E:/ test.txt文件;
 (2)创建FileOutputStream输出流对象;
 (3)创建中转站数组byte[] words,存放每次读取的内容;
 (4)通过while循环实现文件读取;
 (5)操作完成后,记得关闭流;
 */
public class Test {
    public static void main(String[] args) throws IOException {
        String string=read();
        write(string,"E:\\test4.txt");
    }

    /**
     * 读取
     * @throws IOException
     */
    public static String read() throws IOException {
        //读取E盘下的test.txt
        File file=new File("E:\\test2.txt");
        //读取字节流
        FileInputStream fileInputStream=new FileInputStream(file);
        //进行读取操作
        byte[] bytes=new byte[1024];
        fileInputStream.read(bytes);

        String content=new String(bytes);

        //关闭流
        fileInputStream.close();

        return content;
    }

    /**
     *
     * @param content  复制内容
     * @param path 路径
     * @throws IOException
     */
    public static void  write(String content,String path)throws IOException{
        File file=new File(path);
        FileOutputStream fileOutputStream=new FileOutputStream(path);
        byte[] bytes = content.getBytes();
        fileOutputStream.write(bytes);

    }
}

序列化和反序列化

需求说明:实现学员对象的序列化和反序列化。

package com.vp.day03.demo13;

import java.io.Serializable;

public class Student implements Serializable {

    public Student() {
    }

    public Student(String name, String stuno, String love, int age) {
        this.name = name;
        this.stuno = stuno;
        this.love = love;
        this.age = age;
    }

    private String name;

    private String stuno;
    private String love;
    private int age;
    private   Teacher teacher;

    public Teacher getTeacher() {
        return teacher;
    }

    public void setTeacher(Teacher teacher) {
        this.teacher = teacher;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStuno() {
        return stuno;
    }

    public void setStuno(String stuno) {
        this.stuno = stuno;
    }

    public String getLove() {
        return love;
    }

    public void setLove(String love) {
        this.love = love;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", stuno='" + stuno + '\'' +
                ", love='" + love + '\'' +
                ", age=" + age +
                ", teacher=" + teacher +
                '}';
    }
}
/**
 * Copyright (C), 2018-2018, XXX有限公司
 * FileName: Teacher
 * Author:   kevin
 * Date:     2018/8/9 15:33
 * Description:
 * History:
 *           
/**
 * Copyright (C), 2018-2018, XXX有限公司
 * FileName: Test
 * Author:   kevin
 * Date:     2018/8/9 15:15
 * Description:
 * History:
 *           
/**
 * Copyright (C), 2018-2018, XXX有限公司
 * FileName: Test01
 * Author:   kevin
 * Date:     2018/8/9 15:38
 * Description:
 * History:
 *           

 

你可能感兴趣的:(第三章JAVA高级特性IO操作)