1 / 14

第一章 第三节 java 的基本语法

第一章 第十三节 输入输出流. 第一章 第三节 java 的基本语法. 上节回顾. 掌握 java 中异常的概念 掌握 java 异常的分类 掌握 java 异常的捕获和处理. 本节主要内容. 掌握输入 / 输出 (I/O) 流的概念 掌握 File 类 掌握流的分类. 知识点一: 输入 / 输出 (I/O) 流的概念 在 java 中,对于数据的输入 / 输出操作以“流”( stream )的方式进行,我们利用流来从硬盘的文件中读数据到你的程序中 , 利用流来写数据到硬盘的文件

irina
Download Presentation

第一章 第三节 java 的基本语法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第一章 第十三节 输入输出流 第一章 第三节 java的基本语法

  2. 上节回顾 掌握java 中异常的概念 掌握java 异常的分类 掌握java 异常的捕获和处理

  3. 本节主要内容 掌握输入/输出(I/O)流的概念 掌握File 类 掌握流的分类

  4. 知识点一:输入/输出(I/O)流的概念 在java中,对于数据的输入/ 输出操作以“流”(stream)的方式进行,我们利用流来从硬盘的文件中读数据到你的程序中,利用流来写数据到硬盘的文件 站在内存的角度分析:往内存里面放信息----输入内存里的信息往外写----输出 即:相对于程序而言,读进来的就叫输入流,写出去的就叫输出流 注:Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。   Java.io是大多数面向数据流的输入/输出类的主要软件包

  5. 知识点二:File File不属于流,它只是用来屏闭不同文件系统,用来统一描述文件的实体BEAN,new File时给它传入文件名称或是路径,它就会去根据参数查找对应的文件属性然后封装成实体 File: java.io.File,它可以创建和删除一个文件,也可以创建和删除一个空目录 方法:file.createNewFile();创建一个新文件 file.mkdir();在当前目录下创建一个目录文件 file.mkdirs();在当前目录下,如果父目录不存在,则创建父目录,然后创建子目录 file.isFile()和file.isDirectory()常用来判断一个目录或者文件是否存在

  6. 知识点二:File file.isFile()和file.isDirectory()常用来判断一个目录或者文件是否存在 file.delete();删除一个文件或者目录 file.list();得到此抽象路径下的所有目录中的文件和目录的名称,并将其放在一个String的数组中, 注: File 不能够得到文件中的内容!!!

  7. 举例一: File file=new File(“test.txt”);//创建一个File 对象,此时磁盘上还没有test.txt文件,默认在项目文件夹下,通过 file.createNewFile(); //该方法用来在磁盘上创建文件,名为test.txt 举例二: File file=new File(“视频”); file.mkdir();//此时将会在当前目录下创建一个“视频”的文件夹 举例三: File file=new File(“D:/视频”); file.mkdir();//此时将会在D盘目录下创建一个“视频”的文件夹 举例四: File file=new File(“D:/视频/音乐”); file.mkdir();//如果你的D盘下没有“视频”文件夹,则音乐文件夹将不能被创建,怎么办,则使用 file.mkdirs();

  8. 举例五:在C盘下创建一个“哈哈”文件夹,如果已经存在该文件夹,则删除它,否则创建它举例五:在C盘下创建一个“哈哈”文件夹,如果已经存在该文件夹,则删除它,否则创建它 File file=new File("c:/哈哈"); if(file.isDirectory()){ file.delete(); }else{ file.mkdir(); } 举例六:获取“哈哈”文件下的所有文件 File file=new File("c:/哈哈"); String[] home=file.list(); for(int i=0;i<home.length;i++){ System.out.println(home[i]); } 

  9. 知识点三:输入/输出流 既然File不能得到文件的具体内容,那么该如何得到文件的内容呢?引入输入/输出流来解决 在Java的中,流分为两大类:字节流和字符流 (1)字节流:有两个顶层的抽象类 :InputStream(输入流)和OutputStream(输出流), 由于他们都是抽象类,抽象类不能实例化,它俩对应的子类常用的是:FileInputstream和FileOutputStream 举例:使用字节流实现文件内容的拷贝(使用已经存在的节点流来构造,提供带缓冲的读写,提高读写的效率): 

  10. public static void main(String[] args) throws IOException { FileInputStream fis=new FileInputStream("C:/我的手机谷歌账户.txt");//获取源文件 BufferedInputStream bis=new BufferedInputStream(fis);//进入过滤流:即字节缓冲流,读取资源的效率高 FileOutputStream fos=new FileOutputStream("D:/新建 文本文档.txt");//放入目标文件中 BufferedOutputStream bos=new BufferedOutputStream(fos);//进入过滤流:即字节缓冲流 byte[] b=newbyte[1024];//作为缓冲区,大小为1K intlen;//保存读到的实际字节数 while((len=bis.read(b))!=-1){ bos.write(b, 0, len);//第一个参数:即得到缓冲区数组,第二个:从第几个开始,第三个:读取的长度 bos.flush();//清空缓冲区,一定要写 } } 

  11. (2)字符流:为什么要引出字符流? 原因:字节流是由字节组成的,字符流是由字符组成的,一个字符占两个字节。扩展:字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化 我们知道,在计算机中存放的就是一堆二进制,那它是如何来表示一个字符,数字,字母等?这就要靠编解码了,字符流就可以用来解决字符编码的问题,使用它,可以保证解码统一,防止出现乱码。 比如字符 ’A’,采用 ASCII码标准码为 0x41 仍然有两个顶层的抽象类 :Reader(字符输入流) 和 Writer(字符输出流) 

  12. 图例:字符输入流

  13. 图例:字符输出流

  14. 举例: //往rrr.txt记事本中写入字符 BufferedWriter bufw = new BufferedWriter(new FileWriter("C:/rrr.txt")); bufw.write("abcde"); bufw.newLine(); bufw.write("fg"); bufw.flush(); bufw.close(); //从rrr.txt中读取字符 BufferedReader bufr = new BufferedReader(new FileReader("C:/rrr.txt")); String line = null; while( null != ( line = bufr.readLine()) ) { System.out.println("read line:" + line); } bufr.close(); 

More Related