JAVA文件操作Word文件下载.docx

上传人:b****5 文档编号:18059388 上传时间:2022-12-13 格式:DOCX 页数:25 大小:133.77KB
下载 相关 举报
JAVA文件操作Word文件下载.docx_第1页
第1页 / 共25页
JAVA文件操作Word文件下载.docx_第2页
第2页 / 共25页
JAVA文件操作Word文件下载.docx_第3页
第3页 / 共25页
JAVA文件操作Word文件下载.docx_第4页
第4页 / 共25页
JAVA文件操作Word文件下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

JAVA文件操作Word文件下载.docx

《JAVA文件操作Word文件下载.docx》由会员分享,可在线阅读,更多相关《JAVA文件操作Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。

JAVA文件操作Word文件下载.docx

length():

字节数

isDirectory():

是否为文件目录

isFile():

是否为文件

list():

返回目录下的文件名字

listFiles():

返回目录下文件

mkdir():

是否创建了一个目录newFile("

C:

//aaaa"

).mkdir();

renameTo():

重命名

作业:

1.通过代码新建一个文件,判断该文件是否存在。

如果存在,将该文件进行删除。

2.删除文件夹及其下面文件

Filefile=newFile("

temp"

);

if(file.isDirectory()){

File[]files=file.listFiles();

for(inti=0;

i<

files.length;

i++){

if(files[i].isHidden()){

System.out.println(files[i].getName()+"

?

:

+files[i].getAbsolutePath());

}

if(files[i].exists()){

files[i].delete();

}

}

3.打印文件夹下的隐藏文件

4.打印某文件夹下所有文件名称,包括文件夹名称,包含子文件夹情况。

【采用递归算法】

publicstaticvoidmain(String[]args){

Filefile=newFile("

printFileName(file);

}

privatestaticvoidprintFileName(Filefile){

if(file!

=null){//?

if(file.isDirectory()){//?

System.out.println("

+file.getName());

File[]files=file.listFiles();

//?

for(Filef:

files){

printFileName(f);

}else{

}

利用JTree实现文件展开、折叠。

【递归、JTree】

3、System处理输入输出

静态属性:

Out:

PrintStream?

In:

InputStream?

Err:

publicclassSystemDemo1{

publicvoidaddData(){

//?

System.out.println(

+SystemDemo1.class.getName()+"

addData()"

+

"

+parseDate());

publicstaticvoidmain(String[]args){

Filefile=

newFile("

+File.separator+"

log"

log.txt"

if(file.exists()&

&

file.isFile()){//?

try{

System.setOut(newPrintStream(file));

newSystemDemo1().addData();

}catch(FileNotFoundExceptione){

e.printStackTrace();

}else{

file.createNewFile();

}catch(IOExceptione){

privatestaticStringparseDate(){

SimpleDateFormatsdf=newSimpleDateFormat("

yyyy/MM/ddHH:

mm:

ss"

Stringdate=sdf.format(newDate());

returndate;

System.setIn(newFileInputStream(file));

Scanners=newScanner(System.in);

while(s.hasNext()){

System.out.println(s.nextLine());

s.close();

简单的键盘记录器。

对于木马、病毒等,通常可以监视用户在键盘上的操作,如输入用户名和密码,从而盗取账号。

通过在控制台输入用户名和密码,将数据写入到文件中,并已明文显示。

4、输入输出流

在JAVA中所有的数据都是以流的形式进行传输或保存的,程序需要数据时要使用输入流读取数据,当程序需要将一些数据保存起来,则要使用输出流。

·

输入流

将外部数据源的数据转换为流,程序就通过读取该类流中的数据,完成对外部数据源数据的读入。

输出流

将类中流数据转换为外部数据源,完成将程序中的数据写入到外部数据源中。

(ByteStream)?

(CharStream)。

字节流是按照字节为单位,一个字节一个字节形成流。

字符流是按照字符为单位,一个字符一个字符形成流。

字节流:

输入流:

InputStream输出流:

OutputStream

字符流:

Reader输出流:

Writer

一般来说,对文件进行操作有下面几个步骤:

v使用File类打开一个文件

v使用字节流或字符流来指定输出的位置。

v进行读写操作。

v关闭输入输出流【切记】

 

5、输出流

目的:

将内存中数据保存到文件中。

v字节流

OutputStream类:

抽象类,其常用的方法:

1.close():

关闭输出流一般来说放置于finally处进行流的关闭

2.flush():

刷新缓冲区强制性地从内存数据同步到外部数据源中

3.write():

往外部数据源写数据

OutputStreamout=System.out;

Stringstr="

hello,java,?

byte[]bytes=str.getBytes();

//?

try{

out.write(bytes);

}catch(IOExceptione){

e.printStackTrace();

}finally{

if(out!

=null){

out.close();

v文件输出流

FileOutputStream:

1.传入File类型

FileOutputStream(Filefile):

2.?

FileOutputStream(Filefile,booleanappend):

[\r\n]。

publicclassFileOutputStreamDemo1{

OutputStreamout=null;

\r\nhello,java,?

1"

out=newFileOutputStream(newFile("

//abc.txt"

),true);

v缓冲输出流

BufferedOutputStream?

flush?

1.BufferedOutputStream(OutputStreamout):

创建一个新的缓冲输出流,以将数据写入指定的底层输出流。

2.BufferedOutputStream(OutputStreamout,intsize):

创建一个新的缓冲输出流,并制定缓冲输出流大小,以将数据写入指定的底层输出流。

注意:

一定要记得关闭输出流,另外记得使?

BufferedOutputStreambos=null;

OutputStreamos=System.out;

bos=newBufferedOutputStream(os);

bos.write("

.getBytes());

bos.flush();

if(bos!

bos.close();

if(os!

os.close();

6、输入流

1.available():

返回当前输入流读取时返回的有效字节数

2.close():

关闭输入流

3.read():

将外部数据源中输入流读入到程序中

4.mark(intreadlimit):

打标记

5.reset():

重新回到最后一个mark的位置。

6.skip():

InputStreamis=System.in;

System.out.println("

byte[]bytes=newbyte[1024];

is.read(bytes);

System.out.println("

Stringstr=newString(bytes);

System.out.println(str);

}finally{

try{

if(is!

=null){

is.close();

}catch(Exceptione){

字节读入过程中,组装字符串采用String的构造函数。

如果自己写的话,针对汉字需要两个字节合并为一个字符,因此可以利用范围进行判断。

例如是字母、数字的可以直接进行转换,对于汉字的则采取两个字节合并。

如果不做这样的处理,则会出现中文乱码情况出现。

v作业:

1.利用FileInputStream实现对文件的读取,并利用OutputStream将数据写出到控制台。

2.实现文件复制功能

对文件进行复制,建议采用字节流形式进行处理,原因因为文档并不一定是有文字的文档,有可能为图片、音乐等。

应该采用边读边写的方式,因为有可能文件过大产生内存溢出的情况。

处理方式见【一个字节一个字节读取】

3.扩展:

实现文件夹复制功能

publicclassFileDirectoryCopy{

/**

*

*@paramdescFile:

*@paramfiles:

*/

privatestaticvoidcopy(FiledescFile,File[]files){

for(inti=0;

if(files[i].isFile()){//?

InputStreamis=null;

OutputStreamos=null;

try{

is=newFileInputStream(files[i]);

Filefile=

newFile(descFile.getAbsolutePath()+File.separator+

files[i].getName());

os=newFileOutputStream(file);

byte[]bytes=newbyte[(int)files[i].length()];

is.read(bytes);

os.write(bytes);

}catch(FileNotFoundExceptione){

e.printStackTrace();

}catch(IOExceptione){

}finally{

try{

os.close();

is.close();

}catch(IOExceptione){

e.printStackTrace();

}

if(files[i].isDirectory()){//?

Filefile=

newFile(descFile.getAbsolutePath()+File.separator

+files[i].getName());

if(!

file.exists()){//?

file.mkdir();

copy(file,files[i].listFiles());

FilesourceFile=newFile("

//log"

FiledescFile=newFile("

//copy"

if(!

sourceFile.isDirectory()||!

sourceFile.exists()){

if(!

descFile.exists()){//?

descFile.mkdir();

copy(descFile,sourceFile.listFiles());

vFileInputStream

1.指定数组长度

is=newFileInputStream(file);

byteb[]=newbyte[1024];

intlength=is.read(b);

length:

+length);

System.out.println(newString(b,0,length));

2.通过文件指定数组长度

byteb[]=newbyte[(int)file.length()];

is.read(b);

System.out.println(newString(b));

3.一个字节一个字节读取

//bcd.txt"

InputStreamio;

BufferedInputStreambis;

io=newFileInputStream(file);

bis=newBufferedInputStream(io);

byte[]bytes=newbyte[(int)file.length()];

inttemp=0;

inti=0;

while((temp=bis.read())!

=-1){//?

bytes[i]=(byte)temp;

i++;

}catch(FileNotFoundExceptione){

【文件导出功能】:

导出Excel、Word

JXL-----JAR包支持

POI-----支持03、07版本

【图标功能】:

曲线图、柱状图、饼图

JFreeChart

v缓冲输入流

BufferedInpuputStream。

7、字符输入输出流

字符流是以字符为单位,因此只能传输文本文件。

vWriter

Writer类是一个输出流,也是一个抽象类。

常用方法:

flush():

Close():

Write(char[]chars):

写入文件

Write(Stringstr):

Writerw=newPrintWriter(System.out);

Stringstr="

char[]chars=str.toCharArray();

FileWriterfw;

w.write(chars);

//w.flush();

w.close();

BufferWriter?

Writerw=null;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1