IO 流及 Socket 部分.docx

上传人:b****4 文档编号:3635119 上传时间:2022-11-24 格式:DOCX 页数:7 大小:16.33KB
下载 相关 举报
IO 流及 Socket 部分.docx_第1页
第1页 / 共7页
IO 流及 Socket 部分.docx_第2页
第2页 / 共7页
IO 流及 Socket 部分.docx_第3页
第3页 / 共7页
IO 流及 Socket 部分.docx_第4页
第4页 / 共7页
IO 流及 Socket 部分.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

IO 流及 Socket 部分.docx

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

IO 流及 Socket 部分.docx

IO流及Socket部分

IO流及Socket部分:

1、什么是java序列化,如何实现java序列化?

【基础】

答:

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进

行流化。

可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之

间。

序列化是为了解决在对对象流进行读写操作时所引发的问题;

序列化的实现:

将需要被序列化的类实现Serializable接口,该接口没有需实

现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然

后使用一个输出流(如FileOutputStream)来构造一个ObjectOutputStream(对

象流)对象,接着,使用ObjectOutputStream对象的writeObject(Objectobj)

方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

2、java中有几种类型的流?

JDK为每种类型的流提供了一些抽象类以供继承,

请说出他们分别是哪些类?

【基础】

答:

字节流,字符流。

字节流继承于InputStream、OutputStream,字符流继承

于Reader、Writer。

在java.io包中还有许多其他的流,主要是为了提高性能

和使用方便。

3、文件和目录(IO)操作:

1)如何列出某个目录下的所有文件?

2)如何列出某个目录下的所有子目录?

3)如何判断一个文件或目录是否存在?

4)如何读写文件?

【基础】

答:

1)示例代码如下:

Filefile=newFile("e:

\\总结");

File[]files=file.listFiles();

for(inti=0;i

if(files[i].isFile())System.out.println(files[i]);

}

2)示例代码如下:

Filefile=newFile("e:

\\总结");

File[]files=file.listFiles();

for(inti=0;i

if(files[i].isDirectory())System.out.println(files[i]);

}

3)创建File对象,调用其exsit()方法即可返回是否存在,如:

System.out.println(newFile("d:

\\t.txt").exists());

4)示例代码如下:

//读文件:

FileInputStreamfin=newFileInputStream("e:

\\tt.txt");

byte[]bs=newbyte[100];

while(true){

intlen=fin.read(bs);

if(len<=0)break;

System.out.print(newString(bs,0,len));

}

fin.close();

//写文件:

FileWriterfw=newFileWriter("e:

\\test.txt");

fw.write("helloworld!

"+System.getProperty("line.separator"));

fw.write("你好!

北京!

");

fw.close();

4、写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出

现的次数。

【基础】

答:

代码如下:

publicintcountWords(Stringfile,Stringfind)throwsException{

intcount=0;

Readerin=newFileReader(file);

intc;

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

=-1){

while(c==find.charAt(0)){

for(inti=1;i

c=in.read();

if(c!

=find.charAt(i))break;

if(i==find.length()-1)count++;

}

}

}

returncount;

}

5、Java的通信编程,编程题(或问答),用JAVASOCKET编程,读服务器几个

字符,再写入本地显示?

【基础】

答:

Server端程序:

packagetest;

import.*;

importjava.io.*;

publicclassServer{

privateServerSocketss;

privateSocketsocket;

privateBufferedReaderin;

privatePrintWriterout;

publicServer(){

try{

ss=newServerSocket(10000);

while(true){

socket=ss.accept();

StringRemoteIP=

socket.getInetAddress().getHostAddress();

StringRemotePort=":

"+socket.getLocalPort();

System.out.println("Aclientcomein!

IP:

"

+RemoteIP+RemotePort);

in=newBufferedReader(new

InputStreamReader(socket.getInputStream()));

Stringline=in.readLine();

System.out.println("Cleintsendis:

"+line);

out=

newPrintWriter(socket.getOutputStream(),true);

out.println("YourMessageReceived!

");

out.close();

in.close();

socket.close();

}

}catch(IOExceptione){

out.println("wrong");

}

}

publicstaticvoidmain(String[]args){

newServer();

}

}

Client端程序:

packagetest;

importjava.io.*;

import.*;

publicclassClient{

Socketsocket;

BufferedReaderin;

PrintWriterout;

publicClient(){

try{

System.out.println("TrytoConnectto127.0.0.1:

10000");

socket=newSocket("127.0.0.1",10000);

System.out.println("TheServerConnected!

");

System.out.println("PleaseentersomeCharacter:

");

BufferedReaderline=newBufferedReader(new

InputStreamReader(System.in));

out=newPrintWriter(socket.getOutputStream(),true);

out.println(line.readLine());

in=newBufferedReader(

newInputStreamReader(socket.getInputStream()));

System.out.println(in.readLine());

out.close();

in.close();

socket.close();

}catch(IOExceptione){

out.println("Wrong");

}

}

publicstaticvoidmain(String[]args){

newClient();

}

}

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

当前位置:首页 > 求职职场 > 简历

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

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