字节流读写文本文件
字节输入流读取文本文件
- InputStream基类
作用:将文件中的数据输入到内部储存器(内存)中.
读取数据的常用方法
方法名称 |
说明 |
int read() |
读取一个字节数据 |
int read(byte[] b) |
将数据读取到字节数组中 |
int read(byte[]b , int off , int len) |
从输入流中读取最多len长度的字节,保存到字节数组b中,保存的位置从off开始 |
void close() |
关闭输入流 |
int available() |
返回输入流读取的估计字节数 |
※ 无参的read()方法从输入流读取1个8位的字节,把它转换为0~255之间的整数。
※ 有参的两个read()方法从输入流批量读取若干个字节。在从文件或键盘读取数据时,采用read(byte[] b)或 read(byte[] b,int off, int len)方法可以减少进行物理读文件或键盘的次数,提高输入或输出操作效率。
- 字节输入流FileInputStream类
常用构造方法:
※ FileInputStream(File file【文件数据源】)
File file=new File (“C:\\test.txt”);
FileInputStream fileObject=new FileInputStream (file);
※ FileInputStream (String name)
InputStream fileObject=new FileInputStream (“C:\\test.txt”);
使用FileInputStream读取文件步骤:
(1) 引入相关类(IOException, InputStream, FileInputStream)
Import java.io.*;
(2) 创建一个文件输入流
InputStream fileObject=new FileInputStream (“C:\\test.txt”);
(3) 利用文件输入流的方法读取文本文件的数据
fileObject .available (); //可读取的字节数
fileObject .read (); //读取文件的数据
(4) 关闭文件输入流对象
fileObject .close ();
★ 注意:
※ read()方法返回整数,若读取的是字符串,则需强制转换。
System .out .println ((char)date+” ”);
※ 流对象使用完毕后需要关闭
字节输出流写文本文件
- OutputStream基类
作用:把内存中的数据输出到文件中。
OutputStream类的常用方法
方法名称 |
说明 |
void write(int c) |
写入一个字节数据 |
void write (byte[] b) |
写入数组b的所有字节 |
void write (byte[]b , int off , int len) |
将字节数组从off位置开始,长度为len的字节数据输出到输出流中 |
void close() |
关闭输出流 |
2.字节输出流OutputStream类
常用构造方法:
※ FileOutputStream(File file【文件数据源】)
File file=new File (“C:\\test.txt”);
FileOutputStream fileObject= new FileOutputStream (file);
※ FileOutputStream (String name)
OutputStream fileObject=new FileOutputStream (“C:\\test.txt”);
※ FileOutputStream (String name, boolean append)
OutputStream fileObject=new FileOutputStream (“C:\\test. txt”, true);
★注意:
1. 第一、二种构造方法在向文件写数据时将覆盖文件中原有的内容。
2. 使用构造方法创建实例时,若相应文件不存在,就会自动创建一个空文件。
3. 若文件存在,但代表一个文件目录,则抛出FileNotFoundException异常。
使用FileOutputStream读取文件步骤:
(1) 引入相关类(IOException, OutputStream, FileOutputStream)
Import java.io.*;
(2) 创建一个文件输出流对象
FileOutputStream fos = new FileOutputStream (“C:\\test.txt”);
(3) 利用文件输出流的方法把数据写入文本文件
String word=“ 好好学习 ”;
byte [] words = word .getBytes();
//利用write方法将数据写入文件
fos. write (words, 0 ,words .length);
(4) 关闭文件输出流
fos .close ();