Java IO1

本文介绍了Java中的File类,用于文件和目录的操作,包括创建、删除、属性获取等。同时,讲解了流的概念,分为输入流和输出流,以及字节流和字符流。还展示了如何使用FileInputStream、FileOutputStream、ObjectInputStream和ObjectOutputStream进行文本和对象的读写。
摘要由CSDN通过智能技术生成

File类

什么是文件?

文件可认为是相关记录或放在一起的数据的集合

文件一般存储在哪里?

JAVA程序如何访问文件属性?

File对象可以表示存在的文件或文件夹,也可以表示不存在的。

File类的常用方法:

方法名称说明
boolean exists()判断文件或目录是否存在
boolean isFile()判断是否是文件
boolean isDirectory()判断是否是目录
String getPath()返回此对象表示的文件的相对路径名
String getAbsolutePath()返回此对象表示的文件的绝对路径名
String getName()返回此对象表示的文件或目录的名称
boolean delete()删除此对象指定的文件或目录
boolean createNewFile()创建名称的空文件,不创建文件夹
long length()返回文件的长度,单位为字节, 如果文件不 存在,则返回 0L
public class FileDemo {


    public static void main(String[] args) {

        File file = new File("b.txt");

        System.out.println(file.getParent());
        //创建文件
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(file.canExecute());
        System.out.println(file.canRead());
        System.out.println(file.canWrite());
        System.out.println();
        if (file.exists()) {
            //删除
            file.delete();
        } else {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

流的概念:是数据的输入与输出

流的分类:

按流向区分:

输出流:outputStream和Writer

 输入流:InputStream和Reader

输入输出流是相对计算机内存来说,而不是相对于元和目标

按处理数据单元划分:

字节流:输入流:InputStream 输出流:outputStream

字符流:输入流: Reader     输出流:Writer

字节流是 8 位通用字节流,字符流是 16 位 Unicode 字符流

文本文件的读写:

用FileInputStream和FileOutputStream读写文本文件

 用BufferedReader和BufferedWriter读写文本文件

 二进制文件的读写:

使用DataInputStream和DataOutputStream读写二进制文件以及基本数据类型数据的读写

对象的读写:

 使用ObjectInputStream和ObjectOutputStream读写对象(序列 化与反序列化)

InputStream类常用方法 :

 int read( )     int read(byte[] b)     int read(byte[] b,int off,int len)    void close( )       int available()

子类FileInputStream常用的构造方法 :

 FileInputStream(File file)      FileInputStream(String name

 OutputStream类常用方法 :

 void write(int c)   void write(byte[] buf)    void write(byte[] b,int off,int len)      void close( )

子类FileOutputStream常用的构造方法 : 

FileOutputStream (File file)   FileOutputStream(String name)   FileOutputStream(String

name,boolean append)

public class ObjectInputStreamDemo {
    public static void main(String[] args) {
        FileInputStream fileInputStream=null;
       ObjectInputStream objectInputStream=null;
        try {
            fileInputStream=new FileInputStream("a.txt");
        objectInputStream=new ObjectInputStream(fileInputStream);
            String s=objectInputStream.readUTF();
            try {
                Person person=(Person)objectInputStream.readObject();
                System.out.println(person);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            };

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                objectInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();

            }
        }
    }
}

public class OutputDemo {
    public static void main(String[] args) {
        FileOutputStream fileOutputStream=null;
        ObjectOutputStream objectOutputStream=null;
        try {
            fileOutputStream=new FileOutputStream("c.txt");
            objectOutputStream=new ObjectOutputStream(fileOutputStream);
            objectOutputStream.writeUTF("sfsafdg");
            objectOutputStream.writeObject(new Person("5102","龙",45));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                objectOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}
public class OutputStreamDemo {
    File file=new File("b.txt");
    OutputStream outputStream=null;

    {
        try {
            outputStream = new FileOutputStream(file);
            outputStream.write(56);
            outputStream.write("sdsaaf".getBytes());
            outputStream.write("nfsauhf".getBytes());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

}
public class InputStreamDemo {
    public static void main(String[] args) {
        InputStream inputStream=null;
        try {
            inputStream=new FileInputStream("a.txt");
            int read=inputStream.read();
            System.out.println((char) read);
            read=inputStream.read();
            System.out.println((char)read);
            read=inputStream.read();
            System.out.println((char)read);
             read=inputStream.read();
            System.out.println((char)read);
             read=inputStream.read();
            System.out.println((char)read);
             read=inputStream.read();
            System.out.println((char)read);
             read=inputStream.read();
            System.out.println((char)read);


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                inputStream.close();
            }catch (IOException e){
                e.printStackTrace();
            }
        }

    }
}
public class ReaderDemo {
    public static void main(String[] args) {
        File file =new File("b.txt");
        Reader reader=null;
        try {
             reader=new FileReader(file);
             int read=reader.read();
            System.out.println((char) read);
             read=reader.read();
            System.out.println((char) read);
            read=reader.read();
            System.out.println((char) read);
            read=reader.read();
            System.out.println((char) read);
            read=reader.read();
            System.out.println((char) read);
            read=reader.read();
            System.out.println((char) read);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

文本操作:  FileReader   FileWriter

字符操作:  FileInputStream   FileOutputStream

 基本数据类型操作:   DataInputStream   DataOutputStream

 操作对象: ObjectInputStream   ObjectOutputStream

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值