字节流: InputStream:是表示字节输入流的所有类的超类。 |--- FileInputStream:从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。 |--- FilterInputStream:包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。 |--- BufferedInputStream:该类实现缓冲的输入流。 |--- Stream: |--- ObjectInputStream: |--- PipedInputStream: ----------------------------------------------- OutputStream:此抽象类是表示输出字节流的所有类的超类。 |--- FileOutputStream:文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。 |--- FilterOutputStream:此类是过滤输出流的所有类的超类。 |--- BufferedOutputStream:该类实现缓冲的输出流。 |--- PrintStream: |--- DataOutputStream: |--- ObjectOutputStream: |--- PipedOutputStream: -------------------------------- 缓冲区是提高效率用的,给谁提高呢? BufferedWriter:是给字符输出流提高效率用的,那就意味着,缓冲区对象建立时,必须要先有流对象。明确要提高具体的流对象的效率。 FileWriter fw = new FileWriter("bufdemo.txt"); BufferedWriter bufw = new BufferedWriter(fw);//让缓冲区和指定流相关联。 for(int x=0; x<4; x++){ bufw.write(x+"abc"); bufw.newLine(); //写入一个换行符,这个换行符可以依据平台的不同写入不同的换行符。 bufw.flush();//对缓冲区进行刷新,可以让数据到目的地中。 } bufw.close();//关闭缓冲区,其实就是在关闭具体的流。 ----------------------------- BufferedReader: FileReader fr = new FileReader("bufdemo.txt"); BufferedReader bufr = new BufferedReader(fr); String line = null; while((line=bufr.readLine())!=null){ //readLine方法返回的时候是不带换行符的。 System.out.println(line); } bufr.close(); ----------------------------- //记住,只要一读取键盘录入,就用这句话。 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));// 输出到控制台 String line = null; while((line=bufr.readLine())!=null){ if("over".equals(line)) break; bufw.write(line.toUpperCase());//将输入的字符转成大写字符输出 bufw.newLine(); bufw.flush(); } bufw.close(); bufr.close();
|