Java知识点总结(JavaIO-字符流)

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java知识点总结(JavaIO-字符流)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Java知识点总结(JavaiO-字符流)

@(Java知识点总结)[Java, JavaIO]

[toc]

在程序中一个字符等于两个字节,那么 Java 提供了 Reader 和 WrITer 两个专门操作字符流的类。

字符输出流:Writer

类定义如下:

public  abstract class Writer extends Object implements ApPEndable,Closeable,Flushable 

Appendable 接口表示内容可以被追加,接收的参数是CharSequence,实际上 String 类就实现了此接口,所以可以直接通过此接口的方法向输出流中追加内容

Java知识点总结(JavaIO-字符流)

Java知识点总结(JavaIO-字符流)

字符输入流:Reader

  public  abstract class Reader extends Object implements Readable,Closeable   

Java知识点总结(JavaIO-字符流)

Java知识点总结(JavaIO-字符流)

  import  java.io.File; import  java.io.FileReader; import  java.io.FileWriter; import  java.io.IOException; import  java.io.Reader; import  java.io.Writer;   public  class Demo04 {     // 输出文件内容   public static void test1() throws IOException {     File file = new File("E:" + File.separator + "test.txt");     Writer fw = new FileWriter(file);       String str = "Hello world!";     fw.write(str);     fw.close();     }     // 追加文件内容   public static void test2() throws IOException {     File file = new File("E:" + File.separator + "test.txt");     Writer fw = new FileWriter(file, true);       String str = "rnHello world!";     fw.write(str);     fw.close();     }     // 从文件中读取内容   public static void test3() throws IOException {     File file = new File("E:" + File.separator + "test.txt");       Reader fr = new FileReader(file);     char[] c = new char[(int) file.length()];     int len = fr.read(c); // 返回值是读取的字符数          fr.close();     System.out.PRintln("内容是:"  + new String(c, 0, len));     }     // 使用循环方式读取内容   public static void test4() throws IOException {     File file = new File("E:" + File.separator + "test.txt");       Reader fr = new FileReader(file);     char[] c = new char[(int) file.length()];          int temp = 0;     int len = 0;     while((temp = fr.read()) != -1){       c[len] = (char)temp ;       len ++;     }          fr.close();     System.out.println("内容是:"  + new String(c,0,len));     }     // 强制性清空缓冲区   public static void test5() throws IOException {     File file = new File("E:" + File.separator + "test.txt");     Writer fw = new FileWriter(fil e);       String str = "Hello world!";     fw.write(str);          fw.flush();     //fw.close();     }     public static void main(String[] args) {     try {       /*test1();       test2();       test4();*/        test5();     } catch (IOException e) {       e.printStackTrace();     }   } }   

字节流和字符流的区别

Java知识点总结(JavaIO-字符流)

字符流在操作时使用了缓冲区(内存),通过缓冲区再操作文件。

使用字节流写入文件,如果没有关闭字节流操作,文件依然存在内容,说明字节流是操作文件本身的。

使用字符流写入文件,如果没有关闭字符流操作,文件中没有任何内容,这是因为字符流使用了缓冲区,关闭字符流时会强制性的将缓冲区中的内容进行输出,但是如果程序没有关闭,则缓冲区的内容无法输出,所以文件中没有内容。

缓冲区:如果一个程序频繁地操作一个资(如文件或数据库),则性能会很低,此时为了提升性能,就可以将一部分数据暂时读入到内存的一块区域之中,以后直接从此区域中读取数据即可,因为读取内存速度会比较快。

在字符流操作中,所有的字符都是在内存中形成的,在输出前会将所有的内容暂时保存在内存之中,所以使用了缓冲区暂存数据。

字节流比字符流更好,使用更广泛 。

所有的文件在硬盘或传输时都是以字节的方式进行的,包括图片等都是按字节的方式存储的,而字符是自由在内存中才会形成,所以在开发中,字节流使用较为广泛。

脚本宝典总结

以上是脚本宝典为你收集整理的Java知识点总结(JavaIO-字符流)全部内容,希望文章能够帮你解决Java知识点总结(JavaIO-字符流)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。