JAVA11IO.docx

上传人:b****5 文档编号:28196045 上传时间:2023-07-09 格式:DOCX 页数:20 大小:20.71KB
下载 相关 举报
JAVA11IO.docx_第1页
第1页 / 共20页
JAVA11IO.docx_第2页
第2页 / 共20页
JAVA11IO.docx_第3页
第3页 / 共20页
JAVA11IO.docx_第4页
第4页 / 共20页
JAVA11IO.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

JAVA11IO.docx

《JAVA11IO.docx》由会员分享,可在线阅读,更多相关《JAVA11IO.docx(20页珍藏版)》请在冰豆网上搜索。

JAVA11IO.docx

JAVA11IO

JAVA基础

File

•访问文件和目录

File类是java.io包下代表与平台无关的文件和目录

File类能新建、删除、重命名文件和目录

File类不能访问文件内容本身,访问文件内容本身需要使用输入/输出流

importjava.io.File;

importjava.io.IOException;

importjava.text.SimpleDateFormat;

importjava.util.Date;

publicclassFileDemo{

publicstaticvoidmain(String[]args)throwsIOException{

//创建一个文件对象

Filefile=newFile("D:

/GZT/test/test/text.txt");

//获取文件所在路径

System.out.println(file.getPath());

//获取文件绝对路径,从根路径开始

System.out.println(file.getAbsolutePath());

//D:

/GZT/test/test

System.out.println(file.getParentFile());

//创建文件目录

if(!

file.getParentFile().exists()){

file.getParentFile().mkdirs();

}

//创建文件

if(!

file.exists()){

//创建文件

file.createNewFile();

}

//文件分隔符

System.out.println(File.separator);

//text.txt

System.out.println("文件名:

"+file.getName());

//D:

\GZT\test\test

System.out.println("父目录名:

"+file.getParent());

//Filefile1=newFile("D:

/GZT/test/test/text1.txt");

//从一个文件对象重名为另一个文件对象

//System.out.println("重命名:

"+file.renameTo(file1));

System.out.println("是否可写:

"+file.canWrite());

System.out.println("是否是文件:

"+file.isFile());

System.out.println("是否是目录:

"+file.isDirectory());

//单位毫秒

System.out.println("最后修改时间:

"+file.lastModified());

//毫秒转日期

Datedate=newDate();

date.setTime(file.lastModified());

//日期格式转换

SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-ddhh:

mm:

ss");

Stringstr=sf.format(date);

System.out.println(str);

//获取文件的长度,文件内容大小

System.out.println(file.length());

//我们已经知道这个文件已经存在

Filefile1=newFile("D:

/GZT/test/test/text1.txt");

System.out.println(file1.delete());

String[]strPaths=file.getParentFile().list();

if(null!

=strPaths){

for(StringstrP:

strPaths){

System.out.println(strP);

}

}

File[]fileArr=file.getParentFile().listFiles();

if(null!

=fileArr){

for(inti=0;i

System.out.println(fileArr[i].getAbsolutePath());

}

}

}

}

1.输入流和输出流(按照流的流向来分,注意选择参照对象)

输入流:

只能从中读取数据,而不能向其写入数据

输出流:

只能向其写入数据,而不能从中读取数据

2.字节流与字符流(按操作数据单元不同)

字节流与字符流用法一样,只是操作数据单元不同:

一个是字节(8位),一个是字符(16位)

字节流以InputStream与OutputStream为基类

字符流以Reader与Writer为基类

•流的概念模型

Java的IO流共有40多个类,但这40多个类都是从如下4个抽象基类派生的

1.InputStream/Reader:

所有输入流的基类,前一个是字节输入流,后一个是字符输入流

2.OutputStream/Writer:

所有输出流的基类,前一个是字节输出流,后一个是字符输出流

FileInputStream

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.IOException;

importjava.io.InputStream;

publicclassFileIsDemo{

publicstaticvoidmain(String[]args){

FileIsDemofid=newFileIsDemo();

fid.readInfo();

}

publicvoidreadInfo(){

//创建一个文件对象

Filefile=newFile("D:

/GZT/test/test/text.txt");

InputStreamis=null;

try{

is=newFileInputStream(file);

//is=newFileInputStream("D:

/GZT/test/test/text.txt");

//读取下一个字节,如果读到流(is)的结尾返回-1

intdata=0;

//有小括号先算小括号里面的

//while((data=is.read())!

=-1){

////中文会被读成两截,产生乱码

//System.out.println((char)data);

//}

byte[]bs=newbyte[100];

//将读取到的内容放到bs中,从bs0位置开始存放,存放长度是100

//这里会因为文件本身内容长度不足以填满bs时,其后会议空格填充

//data读取到的文本字节数据个数

//bs内存中,在读文件内容的时候,先读一个字节数据到bs中,

//bs没有满,文件也没有读完,接着读第二个放到bs中,bs没有满

//文件也没有读完,一次类推,要么bs读满,要么读到文件结束

//可以操作bs获取数据

while((data=is.read(bs,0,bs.length))!

=-1){

System.out.println("======");

//中文也会被读成两截,产生乱码

System.out.println(newString(bs,0,data));

}

}catch(FileNotFoundExceptione){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}finally{

//关闭流

try{

if(null!

=is){

is.close();

}

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

}

FileOutputStream

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.IOException;

importjava.io.OutputStream;

publicclassFileOsDemo{

publicstaticvoidmain(String[]args){

FileOsDemofod=newFileOsDemo();

fod.outputInfo();

}

publicvoidoutputInfo(){

OutputStreamos=null;

try{

//输出流的初始化

//默认是覆盖的写入,当后面传入的参数是true时,便是追加的写入

os=newFileOutputStream("D:

/GZT/test/test/text.txt",false);

Stringinfo="韩国部署萨德是不道德的韩国部署萨德是不道德的";

//os.write(97);//a

byte[]bs=info.getBytes();

//一个中文3个字节

os.write(bs);//os.write(bs,0,bs.length);

os.write(bs,0,6);//写入整个字节数组

//从第二个位置开始,写入长度为3

//os.write("acbdef".getBytes(),2,3);

//os.flush();

}catch(FileNotFoundExceptione){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}finally{

if(null!

=os){

try{

os.close();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

}

}

文件复制

importjava.io.Closeable;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.OutputStream;

publicclassFileCopyDemo{

//读文件的路径

privateStringiPath="D:

/GZT/test/test/text.txt";

//写文件的路径

privateStringoPath="D:

/GZT/test/test/text1.txt";

publicstaticvoidmain(String[]args){

FileCopyDemofcd=newFileCopyDemo();

fcd.copyFile();

}

/**

*

*@parampath

*@returntrue表示文件存在,false文件不存在

*/

publicbooleanexistFile(Stringpath){

Filefile=newFile(path);

//先判读目录存在不存在,如果不存在,则创建,否则不管

if(!

file.getParentFile().exists()){

file.getParentFile().mkdirs();

}

//判断文件存在不存在,如果不存在,则创建

if(!

file.exists()){

try{

//如果不存在,并创建成功返回true,否则返回false

returnfile.createNewFile();

}catch(IOExceptione){

returnfalse;

}

}

returntrue;

}

publicbooleanfileError(){

//判断读写文件是否都存在,如果有一个不存在,则执行return结束方法

if(!

existFile(iPath)){

System.out.println("读的文件不存在,请检查后在执行");

returnfalse;

}

if(!

existFile(oPath)){

System.out.println("写的文件不存在,请检查后在执行");

returnfalse;

}

returntrue;

}

publicvoidcopyFile(){

//输入流读输出流写

InputStreamis=null;

OutputStreamos=null;

if(!

fileError()){

return;

}

try{

is=newFileInputStream(iPath);

os=newFileOutputStream(oPath);

byte[]b=newbyte[100];

intdata=0;

while((data=is.read(b))!

=-1){

os.write(b,0,data);

}

}catch(FileNotFoundExceptione){

e.printStackTrace();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}finally{

//FileOutputStreamextendsOutputStreamimplementsCloseable

//Closeable中有close方法,

//Closeablecl=os;

//cl.close();

closeStream(os);

closeStream(is);

}

}

/**

*关闭流

*

*@paramstream

*/

publicvoidcloseStream(Closeablestream){

try{

stream.close();

}catch(IOExceptione){

e.printStackTrace();

}

}

}

BufferedInputStream

importjava.io.BufferedInputStream;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.IOException;

importjava.io.InputStream;

publicclassBisDemo{

privatestaticStringpath="D:

/GZT/test/test/text.txt";

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

bufferIs();

}

privatestaticvoidbufferIs(){

FileInputStreamfis=null;

InputStreamis=null;

try{

fis=newFileInputStream(path);

is=newBufferedInputStream(fis);

byte[]b=newbyte[100];

intdata=0;

//关于flush方法

//刷新缓冲区缓冲区在没有满的情况下他还在内存中,我们是无法操作其中的数据

//当缓冲区满了之后,我们便可以通过变量访问到他

while((data=is.read(b))!

=-1){

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

}

}catch(FileNotFoundExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}finally{

if(null!

=is){

try{

is.close();

}catch(IOExceptione){

e.printStackTrace();

}

}

}

}

}

BufferedOutputStream

importjava.io.BufferedOutputStream;

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.IOException;

publicclassBufOsDemo{

privatestaticStringpath="D:

/GZT/test/test/text.txt";

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

bufOs();

}

privatestaticvoidbufOs(){

BufferedOutputStreambos=null;

try{

bos=newBufferedOutputStream(newFileOutputStream(path,true));

Stringinfo="**韩国滚蛋了";

bos.write(info.getBytes());

//如果发现内容没有写全,那么就调用flush方法

//刷新缓冲区

bos.flush();

}catch(FileNotFoundExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}finally{

if(null!

=bos){

try{

bos.close();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

}

}

FileReader

importjava.io.FileNotFoundException;

importjava.io.FileReader;

importjava.io.IOException;

importjava.io.Reader;

/**

*

*InputStreamOutputStream

*FileInputStreamFileOutputStream

*BufferedInputStreamBufferedOutputStream

*

*ReaderWriter

*FileReaderFileWriter

*BufferedReaderBufferedWriter

*

*/

publicclassFileReaderDemo{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

fileReader();

}

privatestaticvoidfileReader(){

//IputStreamis=newFileInputStream("");

Readerreader=null;

try{

reader=newFi

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

当前位置:首页 > 职业教育 > 中职中专

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

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