Java输入输出(理论).ppt

上传人:wuy****n92 文档编号:70796696 上传时间:2023-01-28 格式:PPT 页数:26 大小:483.50KB
返回 下载 相关 举报
Java输入输出(理论).ppt_第1页
第1页 / 共26页
Java输入输出(理论).ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《Java输入输出(理论).ppt》由会员分享,可在线阅读,更多相关《Java输入输出(理论).ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第2章章 Java输入输出输入输出课程回顾课程回顾创建线程的两种方法是什么?创建线程的两种方法是什么?继承Thread类实现Runnable接口线程同步分为哪两类?线程同步分为哪两类?同步代码块同步方法线程生命周期的五种状态?线程生命周期的五种状态?创建、就绪、运行、阻塞、终止本章目标本章目标掌握使用掌握使用File类进行文件操作类进行文件操作理解输入输出流的概念理解输入输出流的概念掌握使用字节流读写文件掌握使用字节流读写文件掌握使用字符流读写文件掌握使用字符流读写文件1.文件操作文件操作u 什么是文件n 文件是相关记录或存放于相同位置的数据的集合 Java中提供java.io.File类操

2、作文件及目录1.1 使用使用File类操作目录类操作目录u File类主要常量及方法类主要常量及方法 方法或常量类型描述public File(String filename)构造方法构造方法创建创建File类对象并传入完整路径类对象并传入完整路径public boolean createNewFile()方法方法创创建新文件建新文件public boolean delete()方法方法删删除文件除文件public boolean exists()方法方法判断文件是否存在判断文件是否存在public boolean isDirectory()方法方法判断判断给给定的路径是否定的路径是否为为目目

3、录录public long length()方法方法返回文件的大小返回文件的大小public String list()方法方法列出指定目列出指定目录录的全部内容的全部内容,只列出名称只列出名称public File listFiles()方法方法列出指定目列出指定目录录的全部的全部File对象对象public boolean mkdir()方法方法创创建目建目录录public boolean renameTo(File dest)方法方法为为已有的文件重命名已有的文件重命名使用使用File类操作目录类操作目录 File f=new File(c:/1.txt);if(f.exists()/判

4、断文件是否存在 f.delete();/删除文件 else try f.createNewFile();/创建新文件 catch(Exception e)e.printStackTrace();System.out.println(文件名称:+f.getName();System.out.println(文件路径:+f.getPath();System.out.println(f.canWrite()?文件可写:文件不可写);System.out.println(f.isDirectory()?是目录:不是目录);System.out.println(文件长度:+f.length()+Byte

5、s);u 判断文件是否存在,不存在则创建,存在则删除使用使用File类操作目录类操作目录 File f=new File(c:);String str=f.list();for(int i=0;istr.length;i+)System.out.println(stri);u 列出指定目录下的文件列出C盘下全部内容使用使用File类操作目录类操作目录u 列出指定目录下的所有文件public static void ListFiles(String path)File dir=new File(path);if(!dir.exists()|!dir.isDirectory()return;/如果

6、是文件或不存在则直接返回File files=dir.listFiles();/获得目录下所有File对象名称的数组for(int i=0;ifiles.length;i+)if(filesi.isFile()System.out.println(path+/列出文件名和文件长度filesi.getName()+t+filesi.length();elseSystem.out.println(path+filesi.getName()+t);/给出目录名ListFiles(filesi.getPath();/如果是目录重新调用本方法(递归)2.流流u 理解流的概念 数据流是一串连续不断的数据的

7、集合,即一连串流动的字符流字节流字符流输入流输出流按内容分按功能分3.字节流字节流InputStreamOutputStream来自数据源的数据流来自数据源的数据流流向目的地的数据流流向目的地的数据流AECDBF字节流字节流字节流字节流u 流使用步骤 使用File类打开文件使用字节或字符流指定位置进行读写操作关闭流u InputStream:程序可以从中连续读取字节的对象称为字节输入流u InputStream 的主要方法3.1 InputPutStream和和OutputStreamInputStream和和OutputStreamu OutputStream:程序可以向其中连续写入字节的对

8、象称为字节输出流 u OutputStream 的主要方法u InputStream和OutputStream是两个抽象类n 使用子类FileInputStream和FileOutputStream分别读取和写入文件的内容3.2 FileInputStream和和FileOutputStream /1.使用File类找到一个文件,如果当前文件不存在则创建新文件 File f=new File(d:+File.separator+demo.txt);/2.实例化IO流类 OutputStream os=new FileOutputStream(f,true);String str=hello w

9、orld;/3。进行写操作 os.write(str.getBytes();/4.关闭输出流 os.close();FileInputStream in=new FileInputStream(f);byte buf=new byte1024;int len=in.read(buf);System.out.println(new String(buf,0,len);in.close();true:在文件末尾追加内容BufferedInputStream和和BufferedOutputStream u BufferedInputStream和BufferedOutputStream可以增加内存缓

10、冲区n BufferedInputStream构造方法 BufferedInputStream(InputStream in)BufferedInputStream(InputStream in,int size)第一种形式的构造方法创建带有32个字节缓冲区的缓冲流,第二种形式的构造方法按指定的大小来创建缓冲区n BufferedOutputStream构造方法BufferedOutputStream(OutputStream in)BufferedOutputStream(OutputStream in,int size)第一种形式的构造方法创建带有32个字节缓冲区的缓冲流,第二种形式的构造

11、方法按指定的大小来创建缓冲区BufferedInputStream和和BufferedOutputStream byte data=new byte1024;FileInputStream in=new FileInputStream(d:/test.txt);FileOutputStream os=new FileOutputStream(d:/demo.txt);BufferedInputStream bufin=new BufferedInputStream(in);BufferedOutputStream bufos=new BufferedOutputStream(os);while

12、(bufin.read(data)!=-1)bufos.write(data);bufos.flush();/强制输出缓冲区中的数据强制输出缓冲区中的数据bufin.close();bufos.close();int count=0;while(count=bufin.read(data)!=-1)bufos.write(data,0,count);文件到达末尾,返回-1u 拷贝a文件到b文件拷贝的文件多出上一次的部分内容。每次只写入实际读取的数据。4.字符流字符流方法方法描述描述public abstract void close()关关闭输闭输入流入流public int read()读读

13、取取单单个字符个字符public int read(char c)将内容将内容读读取到字符数取到字符数组组中,并返回中,并返回读读取的取的长长度度4.1 Reader和Writeru Reader和Writer是两个抽象类,分别与InputStream和OutputStream对应 n Reader的主要方法 n Writer主要方法 方法方法描述描述public abstract void close()关关闭输闭输出流出流public void write(String str)输输出字符串出字符串public void write(char c)输输出字符数出字符数组组public ab

14、stract void flush()强强制清空制清空缓缓存存4.2 FileReader和和FileWriter File f=new File(d:/demo.doc);Writer out=new FileWriter(f);out.write(hello world);out.close();Reader reader=new FileReader(f);char c=new char1024;int len=reader.read(c);/将内容读取到字符数组中System.out.println(new String(c,0,len);out.close();reader.clos

15、e();u FileReader和FileWriter是Reader和Writer的子类,主要用于读写字符文件 4.3InputStreamReader和和OutputStreamWriter u InputStreamReader和OutputStreamWriter是字节流和字符流之间的转换类n InputStreamReader是将输入的字节流变为字符n 构造方法n OutputStreamWriter是将输出的字符流变为字节流n 构造方法 InputStreamReader(InputStream in)InputStreamReader(InputStream in,String c

16、harsetName)InputStreamReader(InputStream in)InputStreamReader(InputStream in,String charsetName)InputStreamReader和和OutputStreamWriter u 字符流转换字节流u 字节流转换字符流File f=new File(d:/demo.txt);OutputStreamWriter os=new OutputStreamWriter(new FileOutputStream(f);os.write(hello world);os.close();File f=new File

17、(d:/demo.txt);/字节流变为字符流InputStreamReader reader=new InputStreamReader(new FileInputStream(f);char c=new char1024;int len=reader.read(c);System.out.println(new String(c,0,len);reader.close();避免频繁进行字符与字节间的相互转换,尽量分别使用BufferedWriter和BufferedReader类包装OutputStreamWriter和InputStreamReader类4.4 BuffedReader和

18、和BufferedWriteru BufferedReader和BufferedWriter是带缓冲区的Reader和Writer n BufferedReader主要方法n BufferedWriter主要方法BuffedReader和和BufferedWriter File f=new File(d:/demo.txt);FileWriter writer=new FileWriter(f);BufferedWriter bufWriter=new BufferedWriter(writer);bufWriter.write(hello world);bufWriter.close();w

19、riter.close();FileReader reader=new FileReader(f);BufferedReader bufReader=new BufferedReader(reader);System.out.println(bufReader.readLine();写入一行字符读取一行字符4.5 PrintWriteru PrintWriter是Writer的子类,其作用是将格式化对象打印到一个文本输出流u PrintWriter主要方法:print()、println()、write()PrintWriter pw=new PrintWriter(d:/test.txt);pw.println(hello world);pw.write(java);pw.flush();pw.close();在调用print()或write()方法后需调用flush()方法刷新缓冲区 本章总结本章总结Java中使用中使用File类来实现创建、删除文件或目录的操作类来实现创建、删除文件或目录的操作输入输出流主要分为:输入输出流主要分为:字节流和字符流,在在Java IO包中可以使用包中可以使用什么什么实现字符流与字节流之间的实现字符流与字节流之间的转换转换?OutputStreamWriter和InputStreamReader

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁