第九章输入与输出Word文件下载.docx
- 文档编号:7140802
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:20
- 大小:18.07KB
第九章输入与输出Word文件下载.docx
《第九章输入与输出Word文件下载.docx》由会员分享,可在线阅读,更多相关《第九章输入与输出Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
if(flTemp.isDirectory())//文件对象指定的文件是否为目录
System.out.println(strFiles[i]+”\t<
DIR>
”);
intDirCount++;
}
System.out.println(intFileCount+”file(s)\t”+lngSize+”bytes’);
System.out.println(intDirCount+”dir(s)”);
EX2:
(java实例解析P73)难度等级:
A
编写一个程序,把一个文件复制到指定的另一文件。
并能判断存在的错误。
classCopy
if(args.length<
2)
System.out.println(“Usage:
Copy[SourceFilename][ObjectFilename].”);
else
FilefSource=newFile(args[0]);
//定义原文件
booleanisOK=true;
if(!
Source.exists())
System.out.println(“SourceFile”+args[0]+”isnotaexist!
isOK=false;
if(isOK&
&
!
Source.isFile())
Source.canRead())//判断原文件是否可读
System.out.println(“cannotread”+“SourceFile”+args[0]+”!
FilefObject=newFile(args[1]);
//定义目标文件
try
if(isOK&
fObject.exists())
System.out.println(“ObjectFile”+args[1]+”isalreadyexist!
System.out.println(“Overwrite?
[y/n]”);
intch=System.in.read();
//读入数据
if(ch==’n’||ch==’N’)
{
isOK=false;
if(isOK)
FileInputStreamfisSource=newFileInputStream(args[0]);
FileOutputStreamfosObject=newFileOutputStream(args[1]);
Systrm.out.println(“Copyfilefrom”+args[0]+”to”+args[1]+”…”);
while(fisSource.available()>
0)//是否输入流还有字节
inttemp=fisSource.read();
//输出
fosObjece.write(temp);
//输入
fisSource.close();
fosObject.close();
System.out.println(“FileCopyedSuccessfully!
catch(IOExceptione)
System.out.println(e);
EX3:
(java2实例解析P79)难度等级:
建立一个文件,并对文件进行查找替代操作
publicclassRandomFileIO
publicstaticvoidmain(Stringargs[])
RanddomAccessFileraFile=newRandomAccessFile(“employee”,”rw”);
System.out.println(“\”employee\”);
CreateFile(rafFile);
OutputFile(rafFile);
ReplaceInFile(rafFile,”zhaoliu”,20);
rafFile.close();
catch(FileNotFoundExceptione)
System.out.println(“Error!
”+e);
System.out.println(“Error”+e);
staticvoidReplaceInFile(RandomAccessFilerafFile,StringstrName,intintAge)
rafFile.seek(0L);
//设置下次读取文件的其始位置
System.out.println(“查找”+strName+”的记录!
StringstrTempName;
longlngInsertPos;
do
rafFile.readLong();
rafFile.readChar();
lngInsertPos=rafFile.getFilePointer();
//返回该文件的当前文件的位置
rafFile.readInt();
rafFile.readChar();
strTempName=rafFile.readLine();
//读取文件的下一行文本
while(strTempName.startsWith(strName)==false)
rafFile.seek(lngInsertPos);
//设置下次读取的位置
rafFile.writeInt(intAge);
System.out.println(“replaceSucced!
System.out.println(“FileAccessError!
//该函数进行文件的创建的工作
staticvoidCreateFile(RandomAccessFilerafFile)
longlngNumbers[]={10001L,10002L,10003L,10004L,10005L};
StringstrNames[]={“zhangsan”,”lisi”,”wangwu”,”zhaoliu”,”qianqi”};
intintAge[]={20,21,26,18,30};
for(inti=0;
lngNumbers.length;
rafFile.writeLong(lngNumbers[i]);
rafFile.writeChar(‘\t’);
rafFile.writeInt(intAge[i]);
rafFile.writeBytes(strNames[i]+”\n”);
catch(IOExceptione)
“+e);
staticvoidOutputFile(RandomAccessFilerafFile)
try
Systrm.out.println(“”);
rafFile.seek(0);
While(true)
longlngNumber=rafFile.readLong();
intstr=rafFile.readInt();
Systrm.out.println(lngNumber+”\t”+str+”\t”+rafFile.readLine());
catch(EOFExceptione)
System.out.println(“Reachtheendofthefile!
EX4:
(java2实例解析P83)难度等级:
编写一个程序,从键盘读入字符,以#结束,把读入的数据写入文件里。
publicclassCreateFile
StringstrFilename;
DataInputStreamstdIn=newDataInputStream(new
BufferedInputStream(System.in));
//新建一个缓存输入流
try//设置输出的文件名
if(args.length==0)
System.out.println(“PleaseInputthFileName:
strFilename=stdIn.readLine();
else
strFilename=args[0];
DataOupputStreamNewFile=newDataOuptputStream(
newBufferedOupputStream(
newFileOutputStream(strFilename)));
intstrTemp;
System.out.println(“***Pleaseimputthecontext,Endwhtha\’#\’***”);
strTemp=stdIn.read();
//读入
while(strTemp!
=’#’)
NewFile.write(strTemp);
strTemp=stdIn.read();
NewFile.close();
//关闭输出流
e.pritnStackTrace();
EX5:
(java2实例解析P87)难度等级:
C
自定义过滤流,对文件进行加密,把n代替a,o代替b,依次类推
publicclassSafeCode
SafeCodeFiltersafeCodeFilter=newSafeCodeFilter();
intintTemp;
//对文件origin.txt进行加密,存放在mid.txt
MyFilterInputStreamrfsIn=newMyFilterInputStream(newFileInputStream
(“origin.txt”),safeCodeFilter);
FileOutputStreamrfsOut=newFileOutputStream(“mid.txt”);
While(intTemp=rfsIn.read()!
=-1)//继续加密的条件
rfsOut.write(intTemp);
rfsIn.close();
//加密完毕之后……
rfsOut.close();
Systrm.out.println(e);
//对文件mid.txt进行解密,存放在result.txt
FileInptStreamrfsIn=newFileInputStream(“mid.txt”);
MyFilterOutputStreamrfsOut=newMyFilterOutputStream(
NewFileOutputStream(“result.txt”),safeCodeFilter);
While(intTemp=rfs.read()!
=-1)//条件
rfsOut.close();
catch(FileNotFoundExceptione)
classMyFilterInputStreamextendsFilterInputStream
SafeCodeFiltersafeCodeFilter;
MyFilterInputStream(InputStreamin,SafeCodeFilterfilter);
super(in);
safeCodeFilter=filter;
publicintread()throwsIOException
intintTemp=in.read();
if(intTemp!
=-1)
intTemp=safeCodeFilter.filter(intTemp);
returnintTemp;
classMyFilterOutpurStreamextendsFilterOutputStream
MyFilterOutputStream(OutputStreamout,SafeCodeFilterfilter);
super(out);
safeCodeFilter=filter;
publicvoidwrite(intintTemp)throwsIOException
out.write(intTemp);
//过滤器
classSafeCodeFilter
publicintfilter(intintTemp)
intc=intTemp;
if(intTemp>
’a’&
intTemp<
’z’)
c=’a’+((intTemp-‘a’)+13)%26;
//加密公式
’A’&
’Z’)
c=’A’+((intTemp-‘A’)+13)%26;
returnc;
EX6:
(java2实例解析P90)难度等级:
编写一个程序,两个线程通过一个管道通信,线程Sender通过管道输出流,将文件发送出去,线程Receiver通过管道接受发送的数据,并写入文件ReceiverFile中。
publicclassThreadCommunication
PipedInputStreampisIn=newPipedInputStream();
PipedOutputStreamposOut=newPipedOutputStream()l
posOut.connect(pisIn);
//管道建立连接
Sendersender=newSender(posOut,”SendFile”);
Receiverreceiver=newReceiver(pisIn,”ReceiverFile”);
Sender.start();
Receiver.start();
classSenderextendsThread
PipedOutputStreamposOut;
Filefile;
Sender(PipedOutputStreamposOut,Stringfile);
this.posOut=posOut;
this.file=newFile(file);
publicvoidrun()
FileInputStreamfs=newFileInputStream(file);
intdata;
data=fs.read();
While(data!
posOut.write(data);
//文件输出
data=fs.read();
pos.Out.close();
//关闭管道
System.out.println(“senderError!
classReceiverextendsThread
PipedInputStreampisIn;
Receiver(PipedInputStreampisIn,Stringfile)
this.pisIn=pisIn;
FileOutputStreamfs=newFileOutputStream(file);
intdata;
data=pisIn.read();
while(data!
fs.write(data);
//接受数据
data=pisIn.read();
pisIn.close();
System.out.println(“ReceiverErroe!
EX7:
(JAVA2实例解析P93)难度等级:
顺序输入流SequenceInputStream,可连接多个输入流,依次打开每个输入流,读取数据,然后关闭流。
importjava,io.*;
importjavautil.*;
classFileConcatenate
FileListfileList=newFileList(args);
SequenceInputStreamsisIn=newSequenceInputStream(fileList);
data=sisIn.read();
//读取数据
while(data!
data=sisIn.read();
System.out.println(data);
sisIn.close();
System.out.println(“Error!
//定义枚举接口
classFileListimplementsEnumeration
StringstrFiles[];
intintCurrnetFile;
FileList(StringstrFiles[])
this.strFiles=strFiles;
intCurrentFile=0;
publicbooleanhasMoreElements()//调用函数,判断是否还有文件
if(intCurrentFile<
strFiel.length)
returntrue;
returnfalse;
publicObjectnextElement()//调用函数,读取下一个文件
if(hasMoreElenents())
intCurrentFile++;
returnnewFileInputStream(strFiles[intCurrentFile-1]);
//数组下标
returnnull;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九 输入 输出