本文主要是介绍java I/O流(一)——FileWriter,BufferedWriter,inputStream,BufferedInputStream,InputStreamReader,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
I/O全名:Input Output,输入输出的意思
•IO流用来处理设备之间的数据传输
•流操作分两种:字节流,字符流
•流按流向分为:输入流,输出流
•字节流的抽象积累
◦InputStream
◦OutputStream
•字符流的抽象基类
◦Reader
◦Writer
FileWriter
•需求:在硬盘上创建一个文件,并且写入数据
那我们怎么去做?他构造函数比较多的,我们看例子
public class HelloJJAVA {public static void main(String[] args) {/*** 需求:在硬盘上创建一个文件,并且写入数据*/// 一被初始化就必须要有被操作的文件// 如果不指定位置,就创建在同目录下// 如果目录下存在同名文件,覆盖try {FileWriter fileWriter = new FileWriter("test.txt");// 写入数据到内存fileWriter.write("abcde");// 刷新该流的缓冲// fileWriter.flush();// 关闭流 关闭之前会刷新,和flush的区别在于flush刷新后流可以继续工作fileWriter.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
这样在我们的项目根目录下就可以看到生成的文件了
文件续写
我们知道,文件存在的话就会覆盖,但是我们不想这样,我们想在原有的数据中续写,这该去怎么做?
public class HelloJJAVA {public static void main(String[] args) {try {//参数2代表不覆盖已有的文件,支持续写FileWriter fileWriter = new FileWriter("demo.txt",true);fileWriter.write("你好");fileWriter.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
构造传参的时候设置为true就可以续写文件了
FileReader
既然写已经会了,那我们就来读取了
public class HelloJJAVA {public static void main(String[] args) {try {// 创建一个文件读取流对象,和指定名称的文件关联,保证文件存在,// 如果不存在,异常FileReader fileReader = new FileReader("demo.txt");// 读取单个字符,自动往下读int cd = fileReader.read();System.out.println((char) cd);//全部打印int ch = 0;while ((ch = fileReader.read()) != -1) {System.out.println(ch);}fileReader.close();} catc
这篇关于java I/O流(一)——FileWriter,BufferedWriter,inputStream,BufferedInputStream,InputStreamReader的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!