版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章内容
输入输出流字符输入输出文件管理
字节输入流
InputStreamPushbackInputStreamByteArrayInputStreamStringBufferInputStreamFileInputStreamPipedInputStreamSequenceInputStreamFilterStreamDataInputStreamBufferedInputStreamLineNumberInputStream类描述ByteArrayInputStream以内存的一个缓冲区当作InputStream使用StringBufferInputStream将String转化为InputStreamFileInputStream读取文件中的信息PipedInputStream常用作多线程环境中的数据源SequenceInpuStream将两个或多个InputStream转为单一的InputStreamFilterInputStream是抽象类,作为其他装饰类的接口。DataInputStream和DataOutputStream协同应用,可从stream读入基本类型BufferedInputStream缓冲读,减少读次数LineNumberInputStream它会记录stream内的行数。PushbackInputStream它会送最后一个字节,一般用于编译器。importjava.awt.*;importjava.awt.event.*;importjava.io.*;publicclassReadFileextendsFrameimplementsActionListener{
FileDialogm_fd;TextFieldm_txtFilename=newTextField(10);Labelm_lblChoosefile=newLabel("选择文件:");Buttonm_btnChoose=newButton("浏览");TextAream_txtareaFilecontent=newTextArea(10,20);Stringm_sTemp;
StringBufferm_buf=newStringBuffer();ReadFile(){this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});this.setLayout(newFlowLayout());add(m_lblChoosefile);add(m_txtFilename);add(m_btnChoose);add(m_txtareaFilecontent);
m_btnChoose.addActionListener(this);setSize(500,250);setVisible(true);}publicvoidactionPerformed(ActionEvente){Stringcmd=e.getActionCommand();if(cmd=="浏览"){
m_txtareaFilecontent.setText(null); m_buf.delete(0,m_buf.length());
m_fd=newFileDialog(this,"打开文件",FileDialog.LOAD);
m_fd.setDirectory("c:\\");m_fd.setVisible(true);
m_sTemp=m_fd.getDirectory()+m_fd.getFile();m_txtFilename.setText(m_sTemp);try{
BufferedInputStreambi=newBufferedInputStream(newFileInputStream(m_sTemp));
while(bi.available()!=0){chara=(char)bi.read();m_buf.append(a);}
bi.close();m_txtareaFilecontent.setText(m_buf.toString());}catch(Exceptionee){}}//if}//actionPerformed()publicstaticvoidmain(String[]args){newReadFile();}}字节输出流OutputStreamByteArrayOutputStreamFileOutputStreamPipedOutputStreamFilterStreamDataOutputStreamBufferedOutputStreamPrintStream类描述ByteArrayOutputStream建立一块内存缓冲区,所有送至此Stream的数据都会被置于该缓冲区内FileOutputStream将信息写入文件PipedOutputStream常用作多线程环境中的数据源FilterOutputStream是抽象类,作为其他装饰类的接口。DataOutputStream和DataInputStream协同应用,可将各种基本类型数据写至streamBufferedOutputStream缓冲写,减少写次数,可以调用flush函数清除缓冲区内容PrintStream产生格式化输出结果。publicvoidactionPerformed(ActionEvente){Stringcmd=e.getActionCommand();if(cmd=="浏览"){ m_fd=newFileDialog(this,"打开文件",FileDialog.LOAD);m_fd.setDirectory("c:\\");m_fd.setVisible(true);
inFilename=m_fd.getDirectory()+m_fd.getFile();m_txtFilename.setText(inFilename);try{BufferedInputStreambi=newBufferedInputStream(newFileInputStream(inFilename));
outFilename=m_fd.getDirectory()+"b.txt";
BufferedOutputStreambo=newBufferedOutputStream(newFileOutputStream(outFilename));while(bi.available()!=0){chara=(char)bi.read();m_buf.append(a);
bo.write(a);}m_txtareaFilecontent.setText(m_buf.toString());bi.close();bo.close();}catch(Exceptionee){}}}字符输入输出Reader和Writer提供了基于字符的IO(character-based)。基于字节的流无法正确处理基于16位的unicode字符,经常出现乱码,Reader和Writer在所有IO操作上提供对unicode的支持。publicvoidactionPerformed(ActionEvente){Stringcmd=e.getActionCommand();if(cmd=="浏览"){ m_fd=newFileDialog(this,"打开文件",FileDialog.LOAD);m_fd.setDirectory("c:\\");m_fd.setVisible(true);inFilename=m_fd.getDirectory()+m_fd.getFile();m_txtFilename.setText(inFilename);try{
BufferedReaderbr=newBufferedReader(newFileReader(inFilename));
outFilename=m_fd.getDirectory()+"b.txt";
BufferedWriterbw=newBufferedWriter(newFileWriter(outFilename));Strings;
while((s=br.readLine())!=null){m_buf.append(s);}
bw.write(m_buf.toString());br.close();bw.close();m_txtareaFilecontent.setText(m_buf.toString());}catch(Exceptionee){}}}文件管理调用File类方法可完成对文件或目录的常用操作,如创建、删除和重命名等,不涉及文件的读写操作创建File类对象
File(Stringfilename);
filename指File对象对应的文件或目录名及其路径,路径可以是相对路径,相对路径认为与当前应用程序在同一目录下绝对路径如:E:\\test\\a.txtFile(Stringdirectorypath,Stringfilename);
filename是文件名字File(Filef,Stringfilename);
f是一个指定成目录的文件
获取文件或目录属性判断文件或目录是否存在
publicbooleanexists();判断是文件还是目录
publicbooleanisFile();
publicbooleanisDirectory();获取文件或目录名称和路径
publicStringgetName();
publicStringgetPath();获取文件长度
publiclonglength();获取文件读写属性
publicbooleancanRead();
publicbooleancanWrite();列出目录中的文件
publicString[]list();比较两个文件或目录
publicbooleanequals(Filef);文件或目录操作重命名文件
publicbooleanrenameTo(Filenewfile);删除文件
publicvoiddelete();创建目录
publicbooleanmkdir();importjava.io.*;importjava.util.*;publicclassfile{publicstaticvoidmain(String[]args){Stringm_sFilename;try{
BufferedReaderbin=newBufferedReader(newInputStreamReader(System.in));while(true){System.out.println("请输入文件或目录名称(QUIT退出):");m_sFilename=bin.readLine();
if(m_sFilename.equalsIgnoreCase("quit")){bin.close();break;}
Filef=newFile(m_sFilename);
if(f.isFile()){
BufferedReaderfin=newBufferedReader(newFileReader(f));Strings;
System.out.println("文件名称:"+f.getName());System.out.println("文件日期:"
+new
Date(f.lastModified()).toString());System.out.println("文件大小:"+f.length());System.out.println("文件内容如下:");System.out.println("-----------------------------------");
while((s=fin.readLine())!=null)System.out.println(s);System.out.println("-----------------------------------");
fin.close();}
elseif(f.isDirectory()){String[]files=f.list();System.out.println("目录文件列表:");System.out.println("-----------------------------------");
for(inti=0;i<files.length;i++)System.out.println(files[i]);System.out.println("-----------------------------------");}}}catch(Exceptione){}System.out.println("再见!");}}文件随机访问FileInputStream和FileOutputStream实现了对磁盘文件的顺序读写,JAVA同时提供了对文件的随机访问RandomAccessFile。创建RandomAccessFile类的对象RandomAccessFile(Stringname,Stringmode);
name指明创建的RandomAccessFile对象对应的文件及其路径,路径可以是相对
mode指明打开文件方式,“r”,“rw”
RandomAccessFile(Filedir,Stringmode);
dir表示所对应文件的File对象
mode指明打开文件方式,“r”,“rw”
对文件位置指针的操作
新建对象,文件指针在文件开头处;
随着读写操作,文件位置指针都相应后移读写的字节数。获取指针位置
publiclonggetPointer();//返回当前位置相对文件头算起的绝对位置移动指针
publicvoidseek(longpos);//将指针移动到相对文件头的pos值指定位置获取文件大小
publiclonglength();//返回文件长度(字节数)读文件实现了DataInput接口,多种方法读取不同类型的数据:readBoolean();readChar();readInt();readByte();readLine();……写文件实现了DataOutput接口,针对不同类型数据提供多种输出方法:
writeBoolean();writeChar();writeInt();writeByte();
importjava.io.*;importjava.util.*;publicclassFile2{publicstaticvoidmain(String[]args){Stringm_sFilename;try{
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));while(true){System.out.println("请输入文件名称(QUIT退出):");
m_sFilename=in.readLine();if(m_sFilename.equalsIgnoreCase("quit")){in.close();break;}RandomAccessFileraf=newRandomAccessFile(m_sFilename,"rw");System.out.println("文件内容如下:");System.out.println("-----------------------------------");
while(raf.getFilePointer()<raf.length())System.out.println(raf.readLine());System.out.println("-----------------------------------");raf.close();}}catch(Exceptione){
System.out.println(e.getMessage());}System.out.println("再见!");}}声明窗口类ReadFile,在窗口中输入用户名和密码,并将用户名和密码保存到文件Secret.txt中。思考题importjava.awt.*;importjava.awt.event.*;importjava.io.*;publicclassReadFileextendsFrameimplementsActionListener{Labelm_id=newLabel("用户名:");Labelm_key=newLabel("密码:");Buttonm_input=newButton("存入");TextFieldId=newTextField(10);TextFieldKeyid=newTextField(10);StringoutFilename;StringBufferm_buf=newStringBuffer();ReadFile(){th
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年VIVO手机项目筹资方案
- 电子技术基础复习题+答案
- 养老院老人生活设施维修人员培训制度
- 《家畜的接近与保定》课件
- 《高龄教育需求评估》课件
- 《脑卒中康复的宗旨》课件
- 2025年阿勒泰货运员初级考试题库
- 2024年桶装水原水采购与供应合作协议范本3篇
- 2025年承德道路运输货运考试题库
- 2025年长春货运从业资格考试模拟考试题目答案
- 高中英语新课标新增词汇汇总1
- GB/T 31586.2-2015防护涂料体系对钢结构的防腐蚀保护涂层附着力/内聚力(破坏强度)的评定和验收准则第2部分:划格试验和划叉试验
- GB/T 20734-2006液化天然气汽车专用装置安装要求
- GB/T 20197-2006降解塑料的定义、分类、标志和降解性能要求
- GB/T 15561-2008静态电子轨道衡
- GB/T 1412-2005球墨铸铁用生铁
- 军事理论论述题
- 宁德时代财务报表分析
- 门式起重机安装施工方案
- 高中语文语法知识课件
- 《国际法》形成性考核参考资料广东开放大学2022年10月题库
评论
0/150
提交评论