IO流

mac2024-10-11  50

ASCII码:0:48;A:65;a:97;

FileWriter

可以将数据写入纯文本当中,没有便创建,一般是覆盖写入,有五个构造方法,

导包

import java.io.FileWriter; CTRL+SHIFT+O 便捷键导入;

创建,构造方法

public FileWriter(String filename)//参数字符串就是文件的路径名称 FileWriter fw = new FileWriter("file01.txt");

文件扩展名只能决定用什么软件打开文件(打开方式),不能决定其内容 总结一下:FileWriter基本使用步骤:创,写,关。 关闭的写法是fw.close();

追加写入

一般FileWrite写入是覆盖写入,若想使用追加写入,便使用下面方法

public FileWriter(String filename, boolean append);//若布尔值是true,便追加写入

换行写入

换行也是一种字符,叫换行符: windows当中的换行符是 “\r\n” 这叫做两个字符"\r"和"\n" macOS当中的换行符是早期是"\r",现在是"\n" liunx当中的换行符是 “\n”

【文字与数字的转换】

所有的数据都是数字,文本的规则是ASCII码和Unicode表;48是0;65是A;97是A;

【FileWrite方法的重载】

public void write(int ch);参数是单个文字对应的数字(参考ASCII码和Unicode表); public void write(String str);写一个完整的字符串; public void write(String str, int offset, int count);写字符串的一部分内容; public void write(char[] array)写一个完整的字符数组; public void write(char[] array, int offset, int count);写字符数组中的一部分; //注释:offset是想要字符的开始索引,count是想要几个字符;

BufferedWriter是FileWriter的升级版

两者差不多,也是一种用来写文件的类,属于字符输出! 最大区别BufferedWriter肚子里有一个8192个char[]字符数组,当中缓冲区使用; 每次在写数据的时候,实际上都是在不断地向缓存数组当中添加字符。 如果缓冲数组满了那么将会统一的写到硬盘的文件当中; 如果还未写满,那么就等待下一次写入; 如果最终关闭时,数组仍然未满,那么也会将剩余的有效部分写到硬盘文件。

如何使用BufferedWriter?

A.首先创建一个普通的FileWriter; B.将这个普通的FileWriter包装成为缓冲的BufferedWriter,用构造方法就行; C.后面BufferedWriter使用方法heFileWriter方法差不多; D.构造方法:public BufferedWriter(FileWriter fw);参数就是一个普通的FileWriter对象;

BufferedWriter与File的方法区别

A.BufferedWriter额外提供了一个换行的方法; B.public void newLine(); 将会自动根据系统来打换行符;以便兼容所有系统; C.调用方法:bw.newLine();不需要参数;

【注意事项】

1.本方法会有异常抛出,可能是因为系统权限不足,内存不足...现阶段不处理异常, 在mian方法参数后面加入throws IOException,表示不处理异常; 2.千万不能忘记最后调用close方法; 3.FileWriter是类。write是方法; 4.使用BUfferedWriter时,要记得关闭流时关闭的是BufferedWriter的流;

FileReader用来将文本文件里的字符读取到程序当中。 使用的步骤:

导包 import java.io.FileReader;

创建,构造方法

public FileReader(String filename);参数仍是文件的路径名。 FileReader fr = new fileReader("filename.txt"); 如果指定的文件名对应的文件不存在,那么会报错。

使用,成员方法 读取单个字符,public int read();读取下一个字符,得到对应的ASCII码或Unicode值。 返回值是一个int值,是ASCII码或Unicode表; 关闭释放资源:public void close();

使用FileReader的步骤也是三个字:创,建,关。

为了提高速率,FileReader提供了另外一种重载形式的read方法; public int read(char[] buf); 一次读取整个字符串的数据。 参数是一个字符数组,用来承载读取到的多个字符。 【返回值代表的是数组当中的读取的有效个数。】

BufferedWriter和FileWriter差不多,也是用来读取文件的一种字符输入流。 区别就在于BufferedReader肚子里有一个8192长度的char[]字符数组,当做缓冲区使用。 当读取数据的时候,一次性从硬盘当中读取最多8192个字符,放在数组缓冲区当中。 在调用read方法的时候,只是从缓冲区当中拿出来字符进行使用。 如果缓冲区当中的字符被“取空”,那么将会自动再次读取最多8192个再次放在缓神区当中。

如何使用BufferedReader? A.首先创建一个普通的FileReader B.将这个普通的FileReader包装成为缓沖的BufferedReader,构造方法。 C.使用起来和普通的FileReader基本没有区别. D.构造方法:public BufferedReader(FileReader fr);参数就是一个普通的FileReader对象。

BufferedReader额外提供了一个方法,可以读取一整行字符串。 public String readLine();读取一整行字符串,返回值当中不包含换行符。

【注意事项】

1.每次调用read();都会读取下一位字符; 2.在print输入中也可以进行强-制转换; 3.FileReader是类。read是方法; 4.FileReader里的read方法执行到最后是,会返回-1,代表没有更多内容; 5.BufferedReader里的read方法执行到最后是,会返回null,代表没有更多内容;

最新回复(0)