io面试题

io流
字节输入流 字节输出流 字符输入流 字符输出流
抽象基类 InputStream OutputStrean Reader Writer
节点流 FileInputStream FileOutputStream FileReader FileWriter
缓存流 BufferedInputStream BufferedOutputStream BufferedReader Bufferedwriter
转换流 InputStreamReader OutputStreamWriter
转换流是字符输入输出流的父类,字符输入输出流实际上就是在程序附近是字符从文件或网络读入先是字节然后转为字符,写到文件或网络是字符转为字节流,
序列流 SequenceInputStream
序列流:表示输入流的逻辑串联从输入流的有序 集合开始,从第一个输入流开始,接着第二个知道最后一个,两个直接在构造器传入,三个需要新建一个Vector v=new Vector<>.()
v.elements 返回一个枚举对象传入一个,序列流构造时传入枚举对象
打印流 printStream PrintWriter
对着文件时流必须关闭
内存流 ByteArrayInputStream ByteArrayOutputStream
将数据存入到内存的byte数组,可以存进去也可以取出来
数据流 DataInputStream DataOutputStream
基本数据类型的读写
对象流 ObjectInputStream ObjectOutputStream
将对象打散成二进制进行传输
随机访问流 RandomAccessFile
着重记住下面的方法
void
seek (long pos)
设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。

对于文本文件的只读或只写建议用字符输入输出流(或缓存流中的readLine()和newLine()这两个方法,在字节缓存流中并没有)速度更快

2,java的序列化,和反序列化
java 对象的序列化指将一个java对象转为二进制写入OI流中,与之对应得是,对象的序列化则从IO流中恢复该java对象。
如果要让某个对象支持序列化机制,则必须让它的类是可序列化,让某个类可以被序列化必须实现Serilzable接口或Externalizable

3,解释一下java.io.Serializable接口 (面试常考)
类通过实现java.io.Serializable接口以启用其序列化功能,未实现此接口的无法序列化或反序列化

4,为了提高原始数据一般采用BufferdInputStream BufferedOutputStream

5,读写原始数据,一般采用InputStream OutputStream

6,对各种基本数据类型和String类型的读写采用DataInputStream DataOutputStream

7,能指定字符编码的IO流类型是 InputStreamReader OutputStreamWriter

8,File中定义了exits()来判断一个文件是否存在

9 . 在unix服务器www.openlab.com.cn上提供了基于TCP的时间服务应用,该应用使用port为13。创建连接到此服务器的语句是:(A )
A Socket s = new Socket(“www.openlab.com.cn”, 13);
B Socket s = new Socket(“www.openlab.com.cn:13”);
C Socket s = accept(“www.openlab.com.cn”, 13);
10. 创建一个TCP客户程序的顺序是:(DACBE )
A 获得I/O流
B 关闭I/O流
C 对I/O流进行读写操作
D 建立socket
E 关闭socket
11. 创建一个TCP服务程序的顺序是:(BCADEGF )
A 创建一个服务线程处理新的连接
B 创建一个服务器socket
C 从服务器socket接受客户连接请求
D 在服务线程中,从socket中获得I/O流
E 对I/O流进行读写操作,完成与客户的交互
F 关闭socket
G 关闭I/O流
12. Java UDP编程主要用到的两个类型是:( BD)
A UDPSocket
B DatagramSocket
C UDPPacket
D DatagramPacket
13. TCP/IP是一种:( B)
A 标准 
B 协议  
C 语言  
D 算法


你可能感兴趣的:(面试)