Java I/O 字符流字节流整理

2021/11/19 20:10:57

本文主要是介绍Java I/O 字符流字节流整理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Reader类
      Reader类常用方法
      int read( )
      int read(char[] c)
     * read(char[] c,int off,int len)
     * void close( )
 * 子类InputStreamReader常用的构造方法
     * InputStreamReader(InputStream in)
     * InputStreamReader(InputStream in,String charsetName)
 * 
 * 
 * FileReader类
 * 
     * FileReader类是InputStreamReader的子类
         * FileReader(File file)
         * FileReader(String name)
     * 该类只能按照本地平台的字符编码来读取数据,用户不能指定其他的字符编码类型
         * System.out.println(System.getProperty("file.encoding")); 
             获得本地平台的字符编码类型
 * 使用FileReader读取文件
 * 
 * 与字节流FileInputStream类实现文本文件读取步骤类似
     * 引入相关的类
         * import java.io.Reader;
         * import java.io.FileReader;
         * Import java.io.IOExceprion;
     * 创建FileReader对象
         * Reader fr= new FileReader("D:\\myDoc\\简介.txt");
     * 读取文本文件的数据
         * fr.read(); 
     * 关闭相关的流对象
         * fr.close();
 * 
 * BufferedReader类
     * 如何提高字符流读取文本文件的效率?
         * 使用FileReader类与BufferedReader类
         * BufferedReader类是Reader类的子类
         * BufferedReader类带有缓冲区
         * 按行读取内容的readLine()方法
 * BufferedReader类
     * BufferedReader常用的构造方法
         * BufferedReader(Reader in)
     * 子类BufferedReader特有的方法
         * readLine()
     * 使用 BufferedReader读文本文件
         * 引入相关的类:
             * import java.io.FileReader;
             * import java.io.BufferedReader;
             * import java.io.IOException;
     * 构造ButterdReader对象和FileReader
         * Reader fr=new  FileReader("C:\\myTest.txt "); 
         * BufferedReader br=new BufferedReader(fr); 
     * 调用readLing()方法读取数据
         br.readLine();
     * 关闭文件流对象
         * br.close();
         * fr.close();
 * 
 * 解决读取时中文乱码
 * 读取包含中文的文本文件时,可能出现中文乱码,怎么办
     * FileReader fr = new FileReader("c:\\myDoc\\hello.txt");
     * BufferedReader br=new BufferedReader(fr); 
     *
     * FileInputStream fis=new FileInputStream("c:\\myDoc\\hello.txt");
     * //使用InputStreamReader并设置编码格式
     * InputStreamReader fr=new InputStreamReader(fis,"UTF-8"); 
     * BufferedReader br=new BufferedReader(fr); 
 * 
 * Writer类
     * Writer类常用方法
         * write(String str)
         * write(String str,int off,int len)
         * void close()
     * void flush()
         * 子类OutputStreamWriter常用的构造方法
         * OutputStreamWriter(OutputStream out)
         * OutputStreamWriter(OutputStream out,String charsetName)
 * FileWriter类
     * FileWriter类是OutputStreamWriter的子类
     * FileWriter (File file)
     * FileWriter (String name)
     * 该类只能按照本地平台的字符编码来写数据,用户不能指定其他的字符编码类型
 
使用FileWriter写文件
      
     与字节流FileOutputStream类实现向文本文件写入数据步骤类似
          引入相关的类
             import java.io.Reader;
             import java.io.FileWriter;
             Import java.io.IOException;
          创建FileReader对象
              Writer fw= new FileWriter("D:\\myDoc\\简介.txt");
          写文本文件
               fw.write(); 
          关闭相关的流对象
              fw.close(); 
 BufferedWriter类
 如何提高字符流写文本文件的效率?
      使用FileWriter类与BufferedWriter类
      (BufferedWriter类是Writer类的子类BufferedWriter类带有缓冲区)

 BufferedWriter常用的构造方法
     * BufferedWriter(Writer out)
 * 使用 BufferedWriter写文件
     * 引入相关的类:
         * import java.io.FileWriter ;
         * import java.io.BufferedWriter ;
         * import java.io.IOException;
     * 构造BufferedWriter对象和Filewriter
         * FileWriter fw=new FileWriter("C:\\myTest.txt"); 
         * BufferedWriter bw=new BufferedWriter(fw);
     * 调用write()方法读取数据
         * bw.write("hello");
     * 流对象的清空和关闭
         * bw.flush();  
         * fw.close();
 * 
 * 读写二进制文件
 * 
     * DataInputStream类
         * FileInputStream的子类
         * 与FileInputStream类结合使用读取二进制文件
     * DataOutputStream类
         * FileOutputStream的子类
         * 与FileOutputStream类结合使用写二进制文件
 * 
 * 
 * 使用 DataInputStream 读二进制文件
 * 
     * 引入相关的类:
         * import java.io.FileInputStream; 
         * import java.io.DataInputStream;
     * 构造数据输入流对象
         * FileInputStream fis=new 
         * FileInputStream("C:\\HelloWorld.class");
         * DataInputStream dis=new DataInputStream(fis);
     * 调用read()方法读取二进制数据
         * dis.read ();
     * 流对象的清空和关闭
         * dis.close();
 * 
 * 使用 DataOutputStream写二进制文件
 * 
     * 引入相关的类:
         * import java.io.FileOutputStream; 
         * import java.io.DataOutputStream;
     * 构造数据输出流对象
         * FileOutputStream outFile=new FileOutputStream("C:\\temp.class");
         * DataOutputStream out=new    DataOutputStream(outFile);
     * 调用read()方法读取二进制数据
         * out.write();
     * 流对象的清空和关闭
         * out.close();
 * 
 * 
 * 序列化和反序列化
     * 序列化和反序列化的过程
         * 内存(java对象)---》序列化---》流(二进制的字节序列)
         * 流(二进制的字节序列)---》反序列化---》内存(java对象)
     * 序列化是将对象的状态写入到特定的流中的过程
     * 反序列化则是从特定的流中获取数据重新构建对象的过程 
 * 
 * 实现序列化
     * 序列化步骤:
         * 实现Serializable--》创建对象输出流--》调用WriteObject()方法将对象写入文件--》关闭对象输出流
         * 使用集合保存对象,可以将集合中的所有对象序列化
     * 反序列化的步骤
         * 实现Serializable--》创建对象输入流--》调用readObject()方法读取对象--》关闭对象输入流
         * 如果向文件中使用序列化机制写入多个对象,那么反序列化恢复对象时,必须按照写入的顺序读取
 



这篇关于Java I/O 字符流字节流整理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程