欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第08章 文件输入输出课件.ppt

    • 资源ID:2163507       资源大小:190.50KB        全文页数:49页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第08章 文件输入输出课件.ppt

    1,Java技术基础,2,第八章 输入输出,概念Java I/O类Java I/O操作标准输入/输出文件读写操作目录管理随机访问文件文件属性,3,概念,I/O来源控制台(console,如DOS窗口)打印/读入文件(file)读/写网络接口(TCP/UDP端口)读/写针对数据的读写以流(stream)的方式对数据进行操作,流的重要特性顺序读/写sequentially,4,概念,读/写流的一般流程读(Reading)open a stream/打开读出流while more information/判断 read information/读close the stream/关闭流写(Writing)open a stream/打开写入流while more information/判断 write information/写close the stream/关闭流,5,概念,两种流的定义(读取信息的基本数据单位)字节流(byte stream):一个字节(8-bit)一个字节读/写字符流(character stream):一个字符一个字符读/写(具有特定字符编码的数据),j a v a 语 言6A 61 76 61 D3 EF D1 D4以字节流的方式读:读8次,8个字节以字符流的方式读:读6次,6个字符,6,第八章 文件输入输出,概念Java I/O类Java I/O操作标准输入/输出文件读写操作目录管理随机访问文件文件属性,7,Java I/O类,字节流的读/写操作(来自JDK1.0)java.io.InputStream(抽象类)public abstract int read()public int read(byte b)public int read(byte b,int offset,int length)到达流的终点,无数据读出则返回-1java.io.OutputStream(抽象类)public abstract void write(int b)public void write(byte b)public void write(byte b,int offset,int length)所有的读/写函数都抛出java.io.IOException,8,Java I/O类,字符流的读/写操作(来自JDK1.1)java.io.Reader(抽象类)public int read()public int read(char cbuf)public abstract int read(char cbuf,int offset,int length)到达流的终点,无数据读出则返回-1java.io.Writer(抽象类)public void write(int c)public void write(char cbuf)public void write(char cbuf,int offset,int length)所有的读/写函数都抛出java.io.IOException,9,Java I/O类,I/O流的层次关系class java.io.InputStream的子类class java.io.ByteArrayInputStreamclass java.io.FileInputStreamclass java.io.FilterInputStreamclass java.io.BufferedInputStreamclass java.io.DataInputStream class java.io.ObjectInputStream class java.io.PipedInputStreamclass java.io.SequenceInputStream,10,Java I/O类,I/O流的层次关系class java.io.OutputStream的子类class java.io.ByteArrayOutputStreamclass java.io.FileOutputStreamclass java.io.FilterOutputStreamclass java.io.BufferedOutputStreamclass java.io.DataOutputStream class java.io.PrintStreamclass java.io.ObjectOutputStreamclass java.io.PipedOutputStream,11,Java I/O类,I/O流的层次关系class java.io.Reader的子类class java.io.BufferedReaderclass java.io.CharArrayReaderclass java.io.FilterReader class java.io.InputStreamReaderclass java.io.FileReaderclass java.io.PipedReaderclass java.io.StringReader,12,Java I/O类,I/O流的层次关系class java.io.Writer的子类class java.io.BufferedWriterclass java.io.CharArrayWriterclass java.io.FilterWriterclass java.io.OutputStreamWriter class java.io.FileWriterclass java.io.PipedWriterclass java.io.PrintWriterclass java.io.StringWriter,13,Java I/O类,I/O流的分类(12个功能类),14,Java I/O类,I/O流的分类(12个功能类),15,Java I/O类,I/O流的分类(12个功能类),16,第八章 文件输入输出,概念Java I/O类Java I/O操作标准输入/输出文件读写操作目录管理随机访问文件文件属性,17,Java I/O操作,主要内容标准输入/输出控制台屏幕打印和键盘读入文件I/O操作文件读写如何提高文件读写效率流的包装(Wrap)基本数据转换流目录管理随机访问文件(Random Access File)文件属性网络流操作,18,输出:控制台屏幕打印class Test public static void main(String args)System.out.println(“Hello World!”);,标准输入/输出,19,输入:键盘读入import java.io.IOException;class Test public static void main(String args)throws IOException byte b=new byte10;System.out.println(Received number=+System.in.read(b);,标准输入/输出,C:java TestAReceived number=3C:,20,文件读/写流程打开文件流条件判断读出/写入关闭文件流两种类型文件FileInputStream/FileOutputStream(字节流)FileReader/FileWriter(字符流),文件读写操作,21,字节流构造方法public FileInputStream(File file)throws FileNotFoundExceptionpublic FileInputStream(String name)throws FileNotFoundExceptionpublic File(String pathname)public FileOutputStream(File file)throws FileNotFoundExceptionpublic FileOutputStream(File file,boolean append)throws FileNotFoundException/是否向已存在的文件后添加public FileOutputStream(String name)throws FileNotFoundExceptionpublic FileOutputStream(String name,boolean append)throws FileNotFoundException,文件读写操作,22,文件读写-实例1,文件读写操作,import java.io.*;public class CopyBytes public static void main(String args)throws IOException File inputFile=new File(“original.txt);File outputFile=new File(“result.txt);FileInputStream in=new FileInputStream(inputFile);FileOutputStream out=new FileOutputStream(outputFile);int c;while(c=in.read()!=-1)out.write(c);in.close();out.close();,public int read()throws IOExceptionpublic int read(byte b)throws IOExceptionpublic int read(byte b,int off,int len)throws IOException,FileInputStream in=new FileInputStream(“original.txt);FileOutputStream out=new FileOutputStream(“result.txt);,public void write(int b)throws IOExceptionpublic void write(byte b)throws IOExceptionpublic void write(byte b,int off,int len)throws IOException,23,字符流构造方法public FileReader(File file)throws FileNotFoundExceptionpublic FileReader(String fileName)throws FileNotFoundExceptionpublic File(String pathname)public FileWriter(File file)throws IOExceptionpublic FileWriter(File file,boolean append)throws IOExceptionpublic FileWriter(String fileName)throws IOExceptionpublic FileWriter(String fileName,boolean append)throws IOException,文件读写操作,24,文件读写-实例2,文件读写操作,import java.io.*;public class Copy public static void main(String args)throws IOException File inputFile=new File(“original.txt);File outputFile=new File(“result.txt);FileReader in=new FileReader(inputFile);FileWriter out=new FileWriter(outputFile);int c;while(c=in.read()!=-1)out.write(c);in.close();out.close();,FileReader in=new FileReader(“original.txt);FileWriter out=new FileWriter(“result.txt);,public int read()throws IOExceptionpublic int read(char cbuf)throws IOExceptionpublic int read(char cbuf,int off,int len)throws IOException,public void write(int b)throws IOExceptionpublic void write(char cbuf)throws IOExceptionpublic void write(char cbuf,int off,int len)throws IOException,25,两类缓冲流针对字节流java.io.BufferedInputStream类java.io.BufferedOutputStream类针对字符流java.io.BufferedReader类java.io.BufferedWriter类,如何提高文件读写效率,26,构造方法public BufferedInputStream(InputStream in)2048 bytespublic BufferedInputStream(InputStream in,int size)public BufferedOutputStream(OutputStream out)512 bytespublic BufferedOutputStream(OutputStream out,int size)public BufferedReader(Reader in)8192 bytespublic BufferedReader(Reader in,int sz)public BufferedWriter(Writer out)8192 bytepublic BufferedWriter(Writer out,int sz),如何提高文件读写效率,27,String filename=“test.txt”;FileInputStream fis=new FileInputStream(filename);int count=0;int c;while(c=fis.read()!=-1)if(c=A)count+;fis.close();System.out.println(count);,如何提高文件读写效率-实例1,如何提高文件读写效率,String filename=“test.txt”;FileInputStream fis=new FileInputStream(filename);BufferedInputStream bis=new BufferedInputStream(fis);int count=0;int c;while(c=bis.read()!=-1)if(c=A)count+;fis.close();System.out.println(count);,FileInputStream fis=new FileInputStream(“test.txt”);int count=0;final int BUFSIZE=1024;byte buf=new byteBUFSIZE;int len;while(len=fis.read(buf)!=-1)for(int i=0;i len;i+)if(bufi=A)count+;fis.close();,28,String filename=“test.txt”;FileReader fr=new FileReader(filename);BufferedReader br=new BufferedReader(fr);int count=0;while(br.readLine()!=null)count+;br.close();System.out.println(count);,如何提高文件读写效率-实例2,如何提高文件读写效率,29,概述,流的包装(wrap),FileReader fr=new FileReader(filename);BufferedReader br=new BufferedReader(fr);,BufferedReader br=new BufferedReader(new FileReader(filename);,PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(filename);,public String readLine()in java.io.BufferedReader public void println(String x)in java.io.PrintWriter,利用不同流的特点(方法)寻找合适的方法完成特定的需求对已有的流进行再处理,30,流的种类节点流直接对数据源进行读/写操作的流处理流对一个已有的流进行某种操作的流,流的包装(wrap),31,节点流FileInputStream,PipedInputStream,ByteArrayInputStream,StringBufferInputStreamFileOutputStream,PipedOutputStream,ByteArrayOutputStreamCharArrayReader,FileReader,PipedReader,StringReaderCharArrayWriter,FileWriter,PipedWriter,StringWriter,流的包装(wrap),32,处理流FilterOutputStream,DataOutputStream,BufferedOutputStream,PrintStreamFilterInputStream,DataInputStream,BufferedInputStream,BufferedReader,InputStreamReader,FilterReaderBufferedWriter,OutputStreamReader,FilterWriter,PrintWriter,流的包装(wrap),33,一个实例java.io.FileReaderpublic FileReader(File file)throws FileNotFoundExceptionpublic FileReader(String fileName)throws FileNotFoundExceptionjava.io.BufferedReaderpublic BufferedReader(Reader in)8192 bytespublic BufferedReader(Reader in,int sz)流的包装改变了流的行为,流的包装(wrap),34,流的包装(wrap)-实例1,流的包装(wrap),import java.io.*;public class Echo public static void main(String args)throws IOException BufferedReader in=new BufferedReader(new InputStreamReader(System.in);String s;while(s=in.readLine().length()!=0)System.out.println(s);,public static final InputStream in(java.lang.System)public InputStreamReader(InputStream in)public BufferedReader(Reader in),35,概述java.io.DataInputStream类public DataInputStream(InputStream in)public final boolean readBoolean()public final byte readByte()public final char readChar()public final int readInt()java.io.DataOutputStream类public DataOutputStream(OutputStream out)public final void writeBoolean(boolean v)public final void writeByte(int v)public final void writeChar(int v)public final void writeInt(int v),基本数据转换流,36,DataOutputStream out=new DataOutputStream(new FileOutputStream(invoice1.txt);double prices=19.99,9.99;int units=12,8;String descs=Java T-shirt,Java Mug;for(int i=0;i prices.length;i+)out.writeDouble(pricesi);out.writeChar(t);out.writeInt(unitsi);out.writeChar(t);out.writeChars(descsi);out.writeChar(n);out.close();,基本数据转换流-实例,基本数据转换流,DataInputStream in=new DataInputStream(new FileInputStream(invoice1.txt);double total;try while(true)double price=in.readDouble();in.readChar();int unit=in.readInt();in.readChar();char chr;StringBuffer desc=new StringBuffer(20);while(chr=in.readChar()!=n)desc.append(chr);System.out.println(Youve ordered+unit+units of+desc+at$+price);total=total+unit*price;catch(EOFException e)System.out.println(For a TOTAL of:$+total);in.close();,19.99 12 Java T-shirt9.99 8 Java Mug,37,概述java.io.File类:文件和目录的路径名构造方法public File(String pathname)public File(String parent,String child)public File(File parent,String child)parent通常表示一个目录,child则表示一个目录或文件路径名(pathname)UNIX平台上绝对路径的前缀“/”,相对路径无前缀,例“/etc/inetd.conf”、“inetd.conf”Windows平台,绝对路径名的前缀由“盘符:”组成;UNC 路径名前缀为“”,然后是主机名和共享名,相对路径名无盘符,例“c:windowsnotepad.exe”、“notepad.exe”,目录管理,38,方法public boolean canWrite()/canRead()public boolean exists()public boolean delete()删除文件或目录,若删除目录,要求该目录必须为空public boolean createNewFile()创建一个空文件,当且仅当该文件不存在public boolean isDirectory()/isFile()/isHidden()public long lastModified()/public boolean setLastModified(long time)public String list()得到当前目录下的所有文件名和目录名,若该File对象不是表示目录,则返回nullpublic boolean mkdir()/mkdirs()创建一个目录public boolean renameTo(File dest)public boolean setReadOnly(),目录管理,39,目录管理方法举例,目录管理,import java.io.File;public class DirList public static void main(String args)File path=new File(.);String list=path.list();for(int i=0;i list.length;i+)System.out.println(listi);,40,目录管理方法举例,目录管理,import java.io.File;import java.io.FilenameFilter;public class DirList public static void main(String args)File path=new File(.);String list=path.list(new DirFilter(args0);for(int i=0;i list.length;i+)System.out.println(listi);,class DirFilter implements FilenameFilter String key;DirFilter(String key)this.key=key;public boolean accept(File dir,String name)String f=new File(name).getName();return f.indexOf(key)!=-1;,java.util.FilenameFilter 接口 public boolean accept(File dir,String name);/是否指定的文件应包含在文件列表中,public String getName()in java.io.File/获得文件或目录名,仅仅是最后的部分,41,随机访问文件(Random Access File)java.io.RandomAccessFile类读写操作在同一个类中完成,须在构造对象时指定参数通过移动文件指针(file pointer)在文件的指定位置进行读写操作构造方法public RandomAccessFile(String name,String mode)throws FileNotFoundExceptionpublic RandomAccessFile(File file,String mode)throws FileNotFoundExceptionmode:“r”,“rw”,随机访问文件,42,方法public void seek(long pos)public int read()public int read(byte b)public int read(byte b,int off,int len)public final boolean readBoolean()/readByte()/readChar()/readShort()/readInt()/readDouble()/readFloat()public final String readLine()public void write(int b)public void write(byte b)public void write(byte b,int off,int len)public final void writeBoolean()/writeByte()/writeChar()/writeShort()/writeInt()/writeDouble()/writeFloat(),随机访问文件,43,随机访问文件(Random Access File)-实例,随机访问文件,RandomAccessFile rf=new RandomAccessFile(rtest.dat,rw);for(int i=0;i 10;i+)rf.writeDouble(i*1.414);rf.close();rf=new RandomAccessFile(rtest.dat,rw);rf.seek(5*8);rf.writeDouble(47.0001);rf.close();rf=new RandomAccessFile(rtest.dat,r);for(int i=0;i 10;i+)System.out.println(Value+i+:+rf.readDouble();rf.close();,运行结果:Value 0:0.0Value 1:1.414Value 2:2.828Value 3:4.242Value 4:5.656Value 5:47.0001Value 6:8.484Value 7:9.898Value 8:11.312Value 9:12.725999999999999,44,文件的特性读和写的权限文件长度修改时间是否是目录java.io.File类设定文件属性查询文件属性,文件属性,45,文件属性,获取文件路径,import java.io.*;class AttrDemo1 public static void main(String args)throws IOException File testfile=new File(.+File.separatorChar+testfile1);testfile.createNewFile();System.out.println(name=+testfile.getName();System.out.println(path=+testfile.getPath();System.out.println(absolute path=+testfile.getAbsolutePath();System.out.println(canonical path=+testfile.getCanonicalPath();,46,文件属性,获取文件修改时间,import java.io.*;import java.util.*;public class AttrDemo2 public static void main(String args)throws IOException File testfile=new File(testfile2);testfile.delete();testfile.createNewFile();long modtime=testfile.lastModified();System.out.println(last modification time#1=+new Date(modtime);testfile.setLastModified(0);modtime=testfile.lastModified();System.out.println(last modification time#2=+new Date(modtime);,47,文件属性,获取和设定文件长度,import java.io.*;public class AttrDemo3 public static void main(String args)throws IOException File testfile=new File(testfile3);testfile.delete();testfile.createNewFile();System.out.println(length#1=+testfile.length();RandomAccessFile raf=new RandomAccessFile(testfile3,rw);raf.setLength(100);raf.close();System.out.println(length#2=+testfile.length();,48,文件属性,设置读写权限,import java.io.*;public class AttrDemo4 public static void main(String args)throws IOException File testfile=new File(testfile4);testfile.delete();testfile.createNewFile();if(testfile.canRead()System.out.println(file can be read#1);if(testfile.canWrite()System.out.println(file can be written#1);testfile.setReadOnly();if(testfile.canRead()System.out.println(file can be read#2);if(testfile.canWrite()System.out.println(file can be written#2);,49,第八章 结束!,

    注意事项

    本文(第08章 文件输入输出课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开