标签:io
IO(Input Output)流
IO流用来处理设备之间的数据传输
Java对数据的操作是通过流的方式,流是一种操作数据的手段,技术
流按操作数据分为两种:字节流与字符流。
流按流向分为:输入流,输出流。
字符流由来就是:早期的字节流+编码表,为了更便于操作文字数据。
记住:只要是操作字符数据,应该优先使用字符流。
操作其他数据,只能使用字节流
IO流常用基类
字节流的抽象基类:
InputStream ,OutputStream。
字符流的抽象基类:
Reader , Writer。
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。前缀名都是这个子类的功能。
如:InputStream的子类FileInputStream。
如:Reader的子类FileReader。
package cn.itcast.p4.io.file; import java.io.FileWriter; import java.io.IOException; public class FileWriterDemo { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { /* * 需求:将内存中的字符串数据写入到硬盘上。 * 1,内存数据到硬盘,应该是输出,也就是写。需要使用输出流。 * 2,要操作的是文本数据。应该字符流。 * 3,综上所述,应该使用字符输出流。Writer。 * 4,因为是将数据写到硬盘上,而硬盘存储数据的方式就是文件。 * 5,应该找一个可以操作文件的字符输出流对象。找到了FileWriter。 */ //1,创建FileWriter对象。 /* * 创建对象,运行时就会创建指定的文件,因为写入数据必须先有数据存储的目的地。 * 如果要创建的文件已经存在,则会覆盖。 */ FileWriter fw = new FileWriter("demo.txt"); //2,写入一个字符串。写入到了缓冲区中。 fw.write("hehe"); //3,使用flush方法。将缓冲中的数据写入到目的地中。 fw.flush(); //4,关闭 close fw.close(); } }
IO-字符输出流_flush&close
* close()和flush()的区别?
* 1,调用flush,可以将数据刷到目的地中,流依然存在,可以继续使用。
* 调用close,可以将数据刷到目的地中,流已被关闭。不能继续使用。最后使用。
* 2,close不仅刷新缓冲区,还关闭底层资源。
IO-字符输出流_IO异常的处理
package cn.itcast.p5.ioexception; import java.io.FileWriter; import java.io.IOException; public class IOExceptionDemo { public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("demo1.txt"); fw.write("abcde"); fw.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (fw != null) try { fw.close(); } catch (IOException e) { throw new RuntimeException("关闭失败"); } } } }
IO-字符输出流_续写&换行
package cn.itcast.p4.io.file; import java.io.FileWriter; import java.io.IOException; public class FileWriterDemo2 { private static final String LINE_SEPARATOR = System.getProperty("line.separator"); /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { /* * 如果在构造时,传入第二个参数为true,将在原有文件末尾处进行续写。 */ FileWriter fw = new FileWriter("demo.txt",true); fw.write(LINE_SEPARATOR+"hiahia"); fw.close(); } }
标签:io
原文地址:http://pengya123.blog.51cto.com/8467424/1790039