实验五输入输出多线程网络Word文件下载.docx
《实验五输入输出多线程网络Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验五输入输出多线程网络Word文件下载.docx(75页珍藏版)》请在冰豆网上搜索。
//h1//echo.txt"
);
//根据文件全名创建文件对象,文件名称请自己选定后修改,不修改者或不存在着无分
if(file.exists()){//判断该文件是否存在
Stringname=file.getName();
//获取文件名称
Stringparent=file.getParent();
//获取文件父路径
longleng=file.length();
//获取文件长度
booleanbool=file.canWrite();
//判断该文件是否可改写
System.out.println("
文件名称为:
"
+name);
//输出信息
文件目录为:
+parent);
文件大小为:
+leng+"
bytes"
最后修改时间"
+file.lastModified());
是否可读"
+file.canRead());
是否为可改写文件:
+bool);
}
}
2、获取某盘、某文件夹下全部文件名称。
该文件夹可在自己的机器上任意一个盘中选一个。
对文件目录运行前与运行后抓屏并将抓屏图像贴到Word文件中。
publicclassFileDemo2{
Filedir=newFile("
E:
//text"
//根据文件路径创建文件对象,,文件夹名称请自己选定后修改,不修改者或不存在着无分
if(dir.isDirectory()){//如果该文件对象指定的是一个目录
File[]files=dir.listFiles();
//获取该目录下的抽象路径名数组
for(inti=0;
i<
files.length;
i++){//循环遍历该数组
Filefile=files[i];
//获取数据中的元素
第"
+(i+1)+"
个文件的名称是:
+file.getAbsolutePath());
3、利用字节输入流InputStream类从键盘接受字符串在显示器上输出。
importjava.io.IOException;
importjava.io.InputStream;
publicclassEcho{
InputStreamis=System.in;
//定义InputStream对象
byte[]bytes=newbyte[1024];
try{
请输入字符串:
//提示用户输入字符串
is.read(bytes);
//将输入的字符串保存在数组中
Stringinput=newString(bytes);
//将数组中的内容转换成字符串
您输入的字符串:
+input.trim());
//输出字符串
}catch(IOExceptione){
e.printStackTrace();
}finally{
is.close();
//释放资源
4、利用字符输入流Reader类的子类InputStreamReader从键盘接受字符串在显示器上输出。
importjava.io.InputStreamReader;
publicclassInputStreamReaderDemo{
//创建Reader子类InputStreamReader实例
InputStreamReaderis=newInputStreamReader(System.in);
char[]cs=newchar[100];
//创建字符数组
is.read(cs);
//向流中读取数据
Stringinput=newString(cs);
//根据读取内容创建字符串
//控制台上输出内容
//关闭流
5、利用字节输出流OutputStream类在显示器上输出字符串。
importjava.io.OutputStream;
publicclassOutputStreamDemo{
OutputStreamout=System.out;
//实例化OutputStream类
try{//创建byte数组
byte[]bs="
本实例使用OutputStream输出流,在控制台输出字符串\n"
.getBytes();
out.write(bs);
//向流中写数据
bs="
输出内容:
\n"
《Java从基础到项目实战》学好Java的必备书"
out.close();
//关闭流
6、利用字符输出流Writer类的子类PrintWriter在显示器上输出字符串。
importjava.io.PrintWriter;
importjava.io.Writer;
publicclassPrintWriterDemo{
Writerout=newPrintWriter(System.out);
//创建PrintWriter实例
char[]cs="
本实例使用字符输出流,在控制台输出字符串"
.toCharArray();
out.write(cs);
//将流关闭
7、复制文件,选择本文件夹中某个文件复制生成另一个文件,新文件名自拟。
1)程序一。
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
publicclassFileCopyDemo{
publicstaticvoidmain(String[]args){//注意下面的文件名自拟
Filesource=newFile("
//h1//echo.txt"
//创建文件,作为要复制的文件
Filetarget=newFile("
//h1//echo1.txt"
//创建文件,作为新文件名
if(!
target.exists()){//如果复制后的文件不存在
target.createNewFile();
//创建文件
FileInputStreamfis=null;
//创建文件输入流对象
FileOutputStreamfos=null;
//创建文件输出流对象
fis=newFileInputStream(source);
//实例化文件输入流对象
fos=newFileOutputStream(target);
//实例化文件输出流对象
//创建字节数组
intlength;
while((length=fis.read(bytes))!
=-1){
fos.write(bytes,0,length);
//将源文件内容写入新文件
}catch(FileNotFoundExceptione){
if(fis!
=null){
fis.close();
if(fos!
fos.close();
2)程序2.以Buffered方式从一个包含中文文件中按行读出内容,去掉其中空行后写到另一个文件中。
importjava.io.*;
importjava.nio.charset.Charset;
publicclassFile1{
publicstaticvoidmain(Stringargs[]){
Filef1=newFile("
\\echo.txt"
BufferedReaderf=newBufferedReader(newFileReader(f1));
//Charsetcs=Charset.forName("
UTF-16"
//7位ASCII字符
//Charset:
16位的Unicode代码单元序列和字节序列之间的指定映射关系
Charsetcs=Charset.forName("
//包括中文格式
BufferedWriterf0=newBufferedWriter(newOutputStreamWriter(newFileOutputStream("
\\echo.txt"
),cs));
Strings,s0="
;
inti=0;
while((s=f.readLine())!
if(s.length()>
0)f0.write(s);
//如果不是空行则写
}
f.close();
f0.close();
System.err.println("
发生异常:
+e);
8、复制文件夹,对文件目录运行前与运行后抓屏并将抓屏图像贴到Word文件中。
publicclassDirectorysCopyDemo{
publicstaticvoidmain(String[]args)throwsIOException{
intcount=0;
//注意下面的文件夹名自拟
Filesources=newFile("
//h1"
//源文件夹
Filetargets=newFile("
//h2"
//目标文件夹
targets.exists()){//如果目标文件夹不存在
targets.mkdir();
//创建文件夹
File[]source=sources.listFiles();
//获得源文件夹中所有文件
for(Filefile:
source){
fis=newFileInputStream(file);
//创建输出流
Filetarget=newFile(targets.getAbsolutePath()+File.separator+file.getName());
target.exists()){
//创建新文件
System.out.println(file.getName()+"
复制完毕!
count++;
一个复制了"
+count+"
个文件!
9、压缩文件夹生成zip文件。
对D盘目录运行前与运行后抓屏并将抓屏图像贴到Word文件中。
importjava.util.zip.ZipEntry;
importjava.util.zip.ZipOutputStream;
publicclassDirectoryZipDemo{
/a1"
//注意文件夹名自拟
/a1.zip"
ZipOutputStreamzos=null;
ZipEntryentry=null;
byte[]buffer=newbyte[1024];
//创建写入压缩文件的数组
zos=newZipOutputStream(fos);
entry=newZipEntry(file.getName());
zos.putNextEntry(entry);
intread=0;
while((read=fis.read(buffer))!
zos.write(buffer,0,read);
//将输入写入到压缩文件
zos.closeEntry();
//关闭ZipEntry
zos.close();
10、将a1中多个.txt文件合并写到一个文件中。
在D盘建文件夹a1,在其中存放三个java文件,再运行本程序。
importjava.io.BufferedInputStream;
importjava.io.FileFilter;
publicclassFileConcatenation24{
FilerootFile=newFile("
//获得要合并java文件的文件夹
File[]files=rootFile.listFiles(newFileFilter(){//获取文件夹中所有txt文件
@Override
publicbooleanaccept(Filepathname){
if(pathname.getName().endsWith("
.java"
)){//要合并的文件的文件类型
returntrue;
}else{
returnfalse;
});
FileconcatedFile=newFile("
/a1/a11.txt"
//声明合成后的文件
BufferedInputStreambis=null;
fos=newFileOutputStream(concatedFile);
files){//遍历所有要合成的文件
//创建文件输入流
bis=newBufferedInputStream(fis);
//利用文件输入流创建缓冲输入流
intlength=0;
while((length=bis.read())!
fos.write(length);
//将输入流写入新文件
if(bis!
bis.close();
//关闭缓冲输入流
//关闭文件输入流
//关闭文件输出流
11、木马、病毒等常常需要监视键盘操作,例如通过监听登录过程中的用户名与密码,记录下来,达到盗取账号的目的。
本程序未实现监听,只是将用户登录时输入到文本框中的内容(包括用户名、密码、登录时间)记录到文件中。
本程序采用了顺序存取文件与随机文件二种保存方式,后者可以添加新内容到文件尾部,可以保存历史数据。
前者只能保存最后一次登录的数据。
请多次运行登录程序,之后,比较存放在d:
\a1\中的aaa1和aaa2二个文本文件中的内容。
学习与比较二种文件存取数据的特点与方法。
packagecom.lw;
importjava.awt.*;
importjava.awt.event.*;
importjava.util.Date;
importjava.io.