Java实例教程沧州师范学院授课教师:刘春玉版权所有:计算机系第7章JavaI/O流Java实例教程沧州师范学院版权所有:计算机系程序显示器键盘输入输出:相对于程序而言的Java实例教程沧州师范学院版权所有:计算机系Java实例教程沧州师范学院版权所有:计算机系任务一:abc.txtlcy.txtTest.classJava实例教程沧州师范学院版权所有:计算机系!Java中每个文件和目录也是对象。File类构造方法:File(Stringfilename)File(Stringparent,Stringchild)File(Fileparent,Stringchild)File(URIuri)如:Filef1=newFile(“Hello.java”);Filef2=newFile(“/”);Filef3=newFile(f2,”Hello.java”);Filef4=newFile(“/”,”Hello.java”);文件程序Java实例教程沧州师范学院版权所有:计算机系File类常用方法:FileDemo.java文件程序Java实例教程沧州师范学院版权所有:计算机系FileInputStream和FileOutputStream——文件流FileInputStreamFileOutputStream文件程序Java实例教程沧州师范学院版权所有:计算机系FileInputStream类构造方法:FileInputStream(Filefile)FileInputStream(Stringname)FileInputStream类常用方法:intread()——读取一个字节,返回ASCII码值intread(byte[]b)——读取一部分字节intread(byte[]b,intoff,intlen)——读取len字节,放到b的从off开始位置intclose()——关闭输入流文件程序Java实例教程沧州师范学院版权所有:计算机系FileOutputStream类构造方法:FileOutputStream(Filefile)FileOutputStream(Filefile,booleanappend)FileOutputStream(Stringname)FileOutputStream(Stringname,booleanappend)FileOutputStream类常用方法:voidwrite(intb)——将一个指定字节写到输出流中voidwrite(byte[]b)——将一个字节数组b中的数据全部写到输出流中voidwrite(byte[]b,intoff,intlen)——将一个字节数组b中从off位置开始长为len的字节写到输出流中。intclose()——关闭输出流文件程序Java实例教程沧州师范学院版权所有:计算机系FileReader和FileWriter——文件流FileReaderFileWriter文件程序Java实例教程沧州师范学院版权所有:计算机系FileReader类构造方法:FileReader(Filefile)FileReader(Stringname)FileReader类常用方法:intread()——读取一个字符intread(char[]c)——将字符读到数组,返回字符数intread(char[]c,intoff,intlen)——读取len字节,放到b的从off开始位置intclose()——关闭流文件程序Java实例教程沧州师范学院版权所有:计算机系FileWriter类构造方法:FileWriter(Filefile)FileWriter(Filefile,booleanappend)FileWriter(Stringname)FileWriter(Stringname,booleanappend)FileWriter类常用方法:voidwrite(intc)——写入字符cvoidwrite(Strings)voidwrite(char[]c)——写入字符数组voidwrite(char[]c,intoff,intlen)voidwrite(Strings,intoff,intlen)intclose()——关闭输出流文件程序Java实例教程沧州师范学院版权所有:计算机系流的分类(1)按照流中传输单位不同:字节流(InputStream/OutputStream)和字符流(Reader/Writer)(2)按照传输方向不同:输入流和输出流(3)按照功能分:节点流和处理流Java实例教程沧州师范学院版权所有:计算机系Java实例教程沧州师范学院版权所有:计算机系Java实例教程沧州师范学院版权所有:计算机系任务二:abc.txtabc.txtTest.classFileInputStreamDataInputStreamJava实例教程沧州师范学院版权所有:计算机系缓冲流缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了新的方法。四种缓冲流:BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriterBufferedReader提供了readLine方法用于读取一行字符串BufferedWriter提供了newLine用于写入一个行分隔符输出缓冲流,写出的数据会现在内存中缓存,使用flush方法将会使内存中的数据立刻写出。Java实例教程沧州师范学院版权所有:计算机系数据流数据流要“套接”在相应的节点流之上,输入输出各种类型的数据:byte、short、char、int、long、float、double。两个数据流:DataInputStreamDataOutputStreamJava实例教程沧州师范学院版权所有:计算机系打印流打印流要“套接”在相应的节点流之上,方便打印各种类型的数据。两个打印流:PrintStreamPrintWriter提供了很print重载的方法,可以打印不同的数据类型在类System中有一个成员变量out就是PrintStream类型的。Java实例教程沧州师范学院版权所有:计算机系标准流System类——用来管理标准输入/输出流和错误流。in——键盘InputStream类型out——显示器PrintStream类型err——显示器PrintStream类型SystemDemo.javaJava实例教程沧州师范学院版权所有:计算机系内存流流的来源或目的地不一定是文件,还可以是内存中的一个空间。ByteArrayOutpupStreamByteArrayInputStreamCharArrayWriterCharArrayReaderJava实例教程沧州师范学院版权所有:计算机系Java实例教程沧州师范学院版权所有:计算机系RandomAccessFile类构造方法:RandomAccessFile(Filefile,Stringmode)RandomAccessFile(stringname,stringmode)如:RandomAccessFile(“src/Test.java”,”r”)RandomAccessFile(“src/Test.java”,”rw”)//rwsrwd常用方法:longgetFilePointer()voidseek(longpos)longlength()