欢迎来到天天文库
浏览记录
ID:34723815
大小:104.01 KB
页数:14页
时间:2019-03-10
《java教程流式输入输出与文件处理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、输入/输出的基本概念(1)输入/输出设备与文件外部设备:①存储设备:硬盘、光盘、U盘等。②输入输出设备:鼠标、键盘、扫描仪、显示器、打印机、绘图仪等。文件:①输入输出设备可以看成是一类特殊的文件;②文件可以看成是字节的序列;③文件分为文本文件和二进制文件,文本文件存放的是ASCII码(或其他编码)表示的字符,而二进制文件是具有特定结构的数据。(2)流的概念Java中的输入/输出是以流的方式来处理的。流是在计算机的输入/输出操作中流动的数据系列。流中有未经加工的二进制数据,也有特定格式的数据。★流的分类:①输入流和输出流;②字节流和字符流。★流的特点:①先进先出。先被写入的数据,在读取时先被
2、读取;②顺序存取。不能随机访问中间的数据;③只读或只写。要么是输出流,要么是输入流。★针对一些频繁的设备交互,Java系统预先定义了3个可以直接使用:①标准输入(System.in):InputStream类型,通常代表键盘的输入;②标准输出(System.out):PrintStream类型,通常写往显示器;③标准错误输出(System.err):PrintStream类型,通常写往显示器。★可以使用下面的方法对流对象进行重定向:①staticvoidsetIn(InputStreamin):重新定义标准输入流;②staticvoidsetErr(PrintStreamerr):重新定义标准
3、错误输出;③staticvoidsetout(PrintStreamout):重新定义标准输出。二、面向字节的输入/输出流(1)面向字节的输入流★面向字节的输入流都是InputStream的子类,此类为抽象类,类中定义了多个方法:①publicintread():读取一个字节;②publicintread(byte[]b):读多个字节到字节数组;③publicintread(byte[]b,intoff,intlen):从输入流读指定长度的数据到字节数组,数组从字节数组的off处开始存放;④publiclongskip(longn):指针跳过n个字节;⑤publicvoidmark():在当前
4、位置指针处做一标记;⑥publicvoidreset():将位置指针返回标记处;⑦publicvoidclose():关闭流。★使用InputStream类的子类①文件输入流(FileInputStream)例题:9.1在屏幕上显示文件内容importjava.io.*;publicclassDisplayFile{ publicstaticvoidmain(String[]args){ try{ FileInputStreaminfile=newFileInputStream(args[0]); intbyteRead=infi
5、le.read(); while(byteRead!=-1){ System.out.print((char)byteRead); byteRead=infile.read(); } } catch(ArrayIndexOutOfBoundsExceptione){ System.out.println("需要提供一个文件名作为命令行参数"); } catch(FileNotFoundExceptione){
6、 System.out.println("filenotfind!"); } catch(IOExceptione){} }}改进此程序:每次读入多个字节。importjava.io.*;publicclassDisplayFile2{ publicstaticvoidmain(String[]args){ try{ FileInputStreaminfile=newFileInputStream(args[0]); byteb[]=newbyte[100]; i
7、ntbyteRead=0; while((byteRead=infile.read(b))!=-1){ Strings=newString(b); System.out.print(s); } } catch(ArrayIndexOutOfBoundsExceptione
此文档下载收益归作者所有