Java基础文档格式.docx

上传人:b****1 文档编号:3964888 上传时间:2023-05-02 格式:DOCX 页数:21 大小:20.79KB
下载 相关 举报
Java基础文档格式.docx_第1页
第1页 / 共21页
Java基础文档格式.docx_第2页
第2页 / 共21页
Java基础文档格式.docx_第3页
第3页 / 共21页
Java基础文档格式.docx_第4页
第4页 / 共21页
Java基础文档格式.docx_第5页
第5页 / 共21页
Java基础文档格式.docx_第6页
第6页 / 共21页
Java基础文档格式.docx_第7页
第7页 / 共21页
Java基础文档格式.docx_第8页
第8页 / 共21页
Java基础文档格式.docx_第9页
第9页 / 共21页
Java基础文档格式.docx_第10页
第10页 / 共21页
Java基础文档格式.docx_第11页
第11页 / 共21页
Java基础文档格式.docx_第12页
第12页 / 共21页
Java基础文档格式.docx_第13页
第13页 / 共21页
Java基础文档格式.docx_第14页
第14页 / 共21页
Java基础文档格式.docx_第15页
第15页 / 共21页
Java基础文档格式.docx_第16页
第16页 / 共21页
Java基础文档格式.docx_第17页
第17页 / 共21页
Java基础文档格式.docx_第18页
第18页 / 共21页
Java基础文档格式.docx_第19页
第19页 / 共21页
Java基础文档格式.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java基础文档格式.docx

《Java基础文档格式.docx》由会员分享,可在线阅读,更多相关《Java基础文档格式.docx(21页珍藏版)》请在冰点文库上搜索。

Java基础文档格式.docx

父目录:

"

+f1.getParent());

文件长度:

+f1.length());

booleanb=f2.exists();

if(b){

f2.delete();

//删除文件

}

if(!

f3.exists()){

dir.mkdir();

//新建目录

f3.createNewFile();

//新建空白文件

System.out.println("

指定目录不存在新建了"

+f3.getAbsolutePath());

}else{

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

//获取文件的绝对路径

f3长度:

+f3.length());

f3最后修改时间:

+newDate(f3.lastModified()));

f3是否为目录:

+f3.isDirectory());

dri是否为目录:

+dir.isDirectory());

}

//递归获取文件信息

publicvoiddoFile(Filefile){

if(file.exists()){

if(file.isDirectory()){

File[]fs=file.listFiles();

//获取文件夹下的文件及子目录列表

for(Filef:

fs){

if(f.isFile()){

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

}else{

doFile(f);

//如果是目录则递归

}

}

}else{

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

}

}else{

文件未找到..."

publicstaticvoidmain(String[]args)throwsIOException{

FileDemodemo=newFileDemo();

demo.doOne();

======================="

demo.doFile(newFile("

\\MyDocuments\\J2EE\\eclipseworkspace\\JavaOOPDemo"

));

}

流的概念

流指数据通信通道

当程序需要读取数据的时候,

就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。

类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流

JAVA定义了两种类型的流:

字节流和字符流

字节流为处理字节的输入和输出提供了方法,用于读写二进制等数据

字符流为处理字符的输入和输出提供方法,它们采用Unicode能够国际化

字节流:

输入字节流

InputStream(abstract)

|

|--------FileInputStream

|

|--------ObjectInputStream

|--------FilterInputStream

|--------DataInputStream

|--------BufferedInputStream

输出字节流

OutputStream(abstract)

|--------FileOutputStream

|--------ObjectOutputStream

|--------FilterOutputStream

|--------DataOutputStream

|--------BufferedOutputStream

|--------PrintStream

InputStream

InputStream类是所有输入字节流类的abstract基类

常用方法

intavailable()返回当前可读的输入字节数。

voidclose()关闭输入流

intread()从输入流读取下一个数据字节,

返回一个整数。

如果到了文件的末尾,则返回-1

intread(byte[] 

b)

从输入流中读取一定数量的字节并将其存储在字节数组b中

b,intbegin,intlength)

从输入流中从开始位置读取长度为length的字节

并将其存储在字节数组b中

OutputStream

所有输出字节流类的abstract基类

voidclose()关闭输出流

voidflush()清空输出缓冲区。

voidwrite(byte[]b)将b.length个字节从指定的字节数组写入此输出流。

voidwrite(byte[]b,intoff,intlen)

将指定字节数组中从偏移量off开始的len个字节写入此输出流。

voidwrite(intb)

将指定的字节写入此输出流。

用于操作文件的字节流

FileInputStream

1..FileInputStreamfis=newFileInputStream(“文件名”);

2…Filefile=newFile(“文件名”);

FileInputStreamfis=newFileInputStream(file);

FileOutputStream

1…FileOutputStreamfos=newFileOutputStream(“文件名”);

2....Filefile=newFile(“文件名”);

FileOutputStreamfos=newFileOutputStream(file);

publicclassStreamDemo{

/**

*读取文件内容

*参数:

filename文件名

*/

publicvoiddoInputStream(Stringfilename)throwsIOException{

Filef=newFile(filename);

if(f.exists()){

InputStreamin=newFileInputStream(filename);

可读取的字节:

+(in.available()));

while(in.available()>

0){

System.out.print((char)in.read());

//读取文件

in.close();

//关闭输入流

文件未找到...."

*写入文件

*str需要写入的字符串

*filename文件名

publicvoiddoOutputStream(Stringstr,Stringfilename)throwsIOException{

OutputStreamout=newFileOutputStream(filename);

byte[]bs=str.getBytes();

out.write(bs,0,bs.length);

//将指定字节数组中从偏移量off开始的len个字节写入此输出流

out.close();

//关闭输出流

*复制文件

*

*srcFile源文件名

*destFile目标文件名

*@throwsIOException

publicvoiddoCopy(StringsrcFile,StringdestFile)throwsIOException{

InputStreamin=newFileInputStream(srcFile);

OutputStreamout=newFileOutputStream(destFile,true);

//true追加

while(in.available()>

out.write(in.read());

in.close();

StreamDemodemo=newStreamDemo();

demo.doInputStream("

dir1/studentDB.sql"

Stringstr="

testoutputStreaminputStream"

;

demo.doOutputStream(str,"

dir1/demo.txt"

demo.doCopy("

dir1/studentDB.txt"

以二进制的形式读写数据的字节流

DataInputStream

DataInputStreamdataInputStream=newDataInputStream(inputStream实例)

DataOutputStream

DataOutputStreamout=newDataOutputStream(OutputStream实例)

要构建以上字节流需要获取InputStream或OutputStream实例

publicclassDataStreamDemo{

*复制二进制文件

*@paramsrcFileName源文件

*@paramdestFileName目标文件

*@throwsIOException

publicvoiddoDataStream(StringsrcFileName,StringdestFileName)throwsIOException{

DataInputStreamin=newDataInputStream(newFileInputStream(srcFileName));

DataOutputStreamout=newDataOutputStream(newFileOutputStream(destFileName));

inttemp;

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

=-1){//-1表示数据读取结束

out.write(temp);

文件复制完成...哈哈可以扫雷啦...."

Runtime.getRuntime().exec(destFileName);

//执行exe文件

DataStreamDemodemo=newDataStreamDemo();

demo.doDataStream("

C:

/WINDOWS/system32/winmine.exe"

dir1/mywinwine.exe"

ObjectOutputStream

ObjectInputStream

用于将包含基本数据类型的Java对象作为流操作

创建:

ObjectOutputStreamout=newObjectOutputStream(OutputStream实例);

ObjectInputStreamin=newObjectInputStream(InputStream实例);

注意:

java对象必须实现序列化接口

publicclassObjectStreamDemo{

publicvoidwriteObject(StringfileName)throwsException{

ObjectOutputStreamout=null;

//创建ObjectOutputStream

try{

out=newObjectOutputStream(newFileOutputStream(fileName));

Employeeemp=newEmployee();

emp.setId(100);

emp.setName("

东方不败"

emp.setEmail("

df@"

out.writeObject(emp);

//将java对象写入到文件

emp=newEmployee();

西门吹雪"

xm@"

}finally{

out.close();

publicvoidreadObject(StringfileName)throwsException{

//创建ObjectInputStream

ObjectInputStreamin=

newObjectInputStream(newFileInputStream(fileName));

Employeeemp=(Employee)in.readObject();

//读出一个对象

while(emp!

=null){

System.out.printf("

employeeid:

%d\tname:

%s\temail:

%s%n"

emp.getId(),emp.getName(),emp.getEmail());

emp=(Employee)in.readObject();

}catch(EOFExceptione){//到达文件或流的末尾异常

\n已达文件末尾..."

publicstaticvoidmain(String[]args)throwsException{

ObjectStreamDemodemo=newObjectStreamDemo();

demo.writeObject("

dir1/employee.txt"

demo.readObject("

//注意实现序列化接口

classEmployeeimplementsSerializable{

privatestaticfinallongserialVersionUID=-5855420840327542571L;

privateintid;

privateStringname;

privateStringemail;

publicintgetId(){

returnid;

publicvoidsetId(intid){

this.id=id;

publicStringgetName(){

returnname;

publicvoidsetName(Stringname){

this.name=name;

publicStringgetEmail(){

returnemail;

publicvoidsetEmail(Stringemail){

this.email=email;

PrintStream

在基本输出流的基础上提供了一些的输出方法,System.out是它的实例

publicclassPrintStreamDemo{

publicvoiddoPrintStream(StringfileName){

//使用PrintStream输出数据到文件

PrintStreamps=null;

ps=newPrintStream(fileName);

}catch(FileNotFoundExceptione){

e.printStackTrace();

ps.print("

helloworld"

ps.println("

hellochina"

ps.close();

//缓冲输入流执行效益有所提高

BufferedInputStreambis=null;

bis=newBufferedInputStream(newFileInputStream(fileName));

while(bis.available()>

System.out.print((char)bis.read());

}catch(IOExceptione){

文件读写错误..."

}finally{

try{

bis.close();

}catch(IOExceptione){

publicstaticvoidmain(String[]args){

PrintStreamDemodemo=newPrintStreamDemo();

demo.doPrintStream("

dir1/txt.txt"

字符流:

字符流用来处理双字节的Unicode字符,分别操作字符、字符数组或字符串

字节流处理单元为1个字节,操作字节和字节数组。

音频文件、图片、歌曲,就用字节流比较好,

但如果是关系到中文(文本)的,用字符流比较好。

字节流没有缓冲区,是直接输出的,而字符流是输出到缓冲区的。

因此在输出时,字节流不调用colse()方法时,信息已经输出了,

而字符流只有在调用close()方法关闭缓冲区时,信息才输出。

要想字符流在未关闭时输出信息,则需要手动调用flush()方法

输入字符流

Reader(abstract)

|--------BufferedReader

|--------InputStreamReader

|--------FileReader

输出字符流

Writer(abstract)

|--------BufferedWriter

|--------PrintWriter

|--------OutputStreamWriter

|--------FileWriter

Reader

Readerabstract类是所有输入字符流类的基类

intread()

返回输入流中下一个可用字符的整数表示。

如果文件结束,返回-1。

voidclose()

Writer

Writerabstract类是所有输出字符流类的基类

voidwrite(Stringstr)

写入str到调用输出流

voidflush()

清空输出缓冲区

close()

关闭此流,但要先刷新它

InputStreamReader

OutputStreamWriter

字节流转字符流

publicclassCharStreamDemo_1{

publicvoiddoWriterAndReader(StringfileName)throwsIOException{

//写文件

OutputStreamos=newFileOutputStream(fileName,true);

//字

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

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2