Java I/O

2021/6/16 22:21:42

本文主要是介绍Java I/O,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

口诀:输入流读数据,输出流写数据

1.使用I/O操作文件

1).操作文件或目录属性

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

>使用FileInputStream类读文本文件

>使用FileOutputStream类写文本文件

>使用BufferedReader类和FileReader类读文本文件

>使用BufferedWriter类和FileWriter类写文本文件

>使用DataInputStream类读二进制文件

>使用DataOutputStream类写二进制文件

>重定向标准I/O

使用File类操作文件和目录属性的步骤如下 :

(1).引入File类

import.java.io.File;

(2)构造一个文件对象

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

(3)利用File类的方法访问文件或目录的属性

file.exists();                  //判断文件或目录是否存在
file.isFile();                  //判断是否是文件
file.isDirectory();             //判断是否是目录
file.getName();                 //获取文件或目录的名称
file.getPath();                 //获取文件或目录的路径
file.getAbsolutePath();         //获取文件或目录的绝对路径
file.lastModified();            //获取文件或目录的最后修改日期
file.length();                  //获取文件或目录的大小,单位字节
file.mkdir();                   //创建一个目录
file.delete();                  //删除指定文件

2.)认识Java流  

流是指一连串流动的字符,是以先进先出的方式发送和接受数据的通道。

流分输入流和输出流,输入/输出流是相对计算机内存来说的,如果数据输入输入到内存,则称为输入流,如果从内存输出则称为输出流。Java的输出流主要由OutputStream和Write作为基类,而输入流则主要由InputStream和Reader作为基类。

在java.io包中,封装了许多输入/输出流的API。在程序中,这些输入/输出流类的对象称为流对象。可以通过这些流对象将内存中的数据以流的方式写入文件,也可以通过流对象将文件中的数据以流的方式读取到内存。

构造流对象时往往会和数据源(如文件)联系起来。数据源分为源数据源和目标数据源。

输入/输出流有分为字节流和字符流两种形式

字节流是8位通用字节流,其基本单位是字节,字节流的基类是InputStream类和OutputStream类,他们是抽象类。

字符流是16位Unicode字符流,基本单位是Unicode字符,字符流最适合处理字符串和文本,因为他们支持国际上大多数字符集和语言,字符流的基类是Reader类和Writer类,他们也是抽象类。

一个被访问的流的基本特征都是通过实现4个抽象类的方法建立的

InputStream类常用的子类有FileInputStream,用于从文件中读取数据

OutputStream类常用的子类FileOutputStream,用于向文件写数据

Reader类的常用子类为BufferedReader,接受Reader对象作为参数,并对其添加字符缓冲器

Writer类的常用子类为BufferedWriter,用于将数据缓冲到字符输出流

3)读写文本文件

通常可以使用java.io包里的流读写文本文件

(1).使用字节流读写文本文件

 InputStream类常用的子类有FileInputStream,用于从文件中读取数据

 使用字节流类FileInputStream读文本文件

步骤如下:导入相关的类

            import.java.io.IOException;

            import.java.io.InputStream;

            import.java.io.FileInputStream; 

 构造一个文件输入流对象

            InputStream fileObject =new FileInputStream("text.txt");

            此时的文件输入流对象fileObject就和源数据(text.txt文件)关联起来了。

 利用文件输入流类的方法读取文本文件的数据

             fileObject.available();   //可读取字节数

             fileObject.read();           //读取文件数据

关闭文件输入流对象

             fileObject.close(); 

 

使用字节流类FileOutputStream写文本文件

OutputStream类常用的子类FileOutputStream,用于向文件写数据

步骤:

导入相关类

             import.java.io.IOException;

            import.java.io.OutputStream;

            import.java.io.FileOutputStream; 

构造一个文件输出流对象

            OutputStream fos =new FileOutputStream("text.txt");

            此时的文件输出流对象fost就和目标源数据(text.txt文件)关联起来了。

利用文件输出流的方法把数据写到文本文件中

            String str="好好学习Java";

            byte[]words =str.getBytes();

            //利用write方法把数据写入到文本文件中

            fos.write(words,0,words.length);

关闭文件输出流

            fos.close();

 

(2)使用字符流读写文本文件

使用字符流类BufferedReader和FileReader读文本文件

Reader类的常用子类为BufferedReader,FileReader,通过字符流的方式读写文本文件,并对其添加字符缓冲器。

步骤

引入相关的类

             import.java.io.IOException;

            import.java.io.BufferedReader;

            import.java.io.FileReader; 

构造一个BufferedReader对象

            FileReader fr=new FileReader("mytest.txt");

            BufferedReader br=new BufferedReader(fr);

利用BufferedReader类的方法读取文本文件的数据

            br.readLine();  //读取一行数据,返回字符串

关闭相关流对象

            br.close();

            fr.close();

 

使用字符流类BufferedWriter和FileWriter写文本文件

Writer类的常用子类为BufferedWriter,FileWriter,通过字符流的方式通过缓冲区把数据写入文本文件。

步骤

引入相关类

            import.java.io.IOException;

            import.java.io.BufferedWriter;

            import.java.io.FileWriter; 

构造一个BufferedWriter对象

            FileWriter fw= new FileWriter("mytest.txt");

            BufferedWriter bw=new BufferedWriter(fw);

利用BufferedWriter类的方法写文本文件

            bw.write("hello");

相关流的对象清空和关闭

            by.flush();

            by.close();

            fw.close();

 



这篇关于Java I/O的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程