自学Java系列 笔记3 IO 1

                                  IO 概述

  • 输入:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。
  • 输出:将程序(内存)数据输出到磁盘、光盘等存储设备中
  • Java 的 IO 流主要包括输入、输出两种 IO 流,每种输入、输出流又可分为字节流和字符流两大类:

§  字节流以字节为单位来处理输入、输出操作

 

 

File

File 类代表与平台无关的文件和目录。

File  能新建、删除、重命名文件和目录,但 File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

  

 

                     

IO 流的分类

按流向分:

–        输入流

–        输出流

•       按处理的单位:

–        字节流(8位的字节)

–        字符流(16位的字节)

•       按流的角色

–        节点流:可以从一个特定的 IO设备读/写数据的流

–        处理流:对一个已存在的流进行连接和封装,通过封装后的流来实现数据读/写操作

 

IO 流体系                    

 

                   

问:什么时候用字节流,什么时候用字符流?

答:字节流什么时候都可以用,但是例如一个文件,一个音频文件,因为它里面的内容是以二进制的形式存放的,所以应该使用字节流,而不能使用字符流。而平时的文档类型的文件,通常用字符流比较方便。

 

 

利用字符输入输出流,完成 hello.txt 文件的复制.

 把该文件复制为 hello2.txt

 

public class IOTest {

                         

                          /**

                           * 利用字符输入输出流, 完成 hello.txt 文件的复制.

                           * 把该文件复制为 hello2.txt

                           * @throws IOException

                           */

                         

                          /**

                           * 利用字节输入输出流, 完成 hello.txt 文件的复制.

                           * 把该文件复制为 hello2.txt

                           * @throws IOException

                           */

                          @Test

                          publicvoid testCopyFile() throws IOException{

                            //1. 创建定位到 hello.txt的文件的输入流

                            InputStreamin = new FileInputStream("hello.txt");

                           

                            //2. 创建定位到hello2.txt的文件输出流

                            OutputStreamout = new FileOutputStream("hello2.txt ");

                           

                            //3. 创建一个 byte 数组,用于读写文件

                            byte[] buffer = new byte[1024 * 10];

                           

                            //4. 读写文件:

                          int len= 0;

                            //in.read(buffer);out.write(buffer, 0, len);

                            while((len= in.read(buffer)) != -1){

//-1代表结尾

 

                                out.write(buffer);

                            }

                            //注意:使用写入的方法,write(char[] cbuf, int off,int len),而不能直接使用write(char[] cbuf)

                            //5. 关闭流资源.

                            out.close();

                            in.close();

                          }

                         

你可能感兴趣的:(自学Java系列 笔记3 IO 1)