输入输出流java知识点

来源:互联网 发布:什么打字软件好 编辑:程序博客网 时间:2024/06/14 07:22




1、FileInputStream类
FileInputStream(String name) 使用给定文件名创建一个FileInputStream对象
FileInputStream(File file) 使用File对象创建FileInpuStream对象
File类有两个常用方法:
File(String s) s确定文件名字;File(String directory,String s) directory是文件目录
处理I/O异常IOException(I/O异常)

从输入流中读取字节
int read() 返回0~255之间一个整数;int read(byte b[]) 读取字节数组
int read(byte b[],int off,int len):off指定把数据存放在b中地方,len指最大字节数
关闭流
close()

2、FileOutputStream类
FileOutputStream(String name) 使用指定的文件名创建FileOutputStream对象
FileOutputStream(File file) 使用file对象创建FileOutputStream对象
FileOutputStream(FileDescriptor fdobj)使用FileDescriptor创建对象

3、FileReader类和FileWriter类
FileReader(String filename);FileWriter(String filename)
处理时需要FileNotFoundException异常

4、RandomAccessFile类
RandomAccessFile不同于FileInputStream和FileOutputStream,不是他们的子类
当我们想对一个文件进行读写操作的时候,创建一个指向该文件的RandomAccessFile流RandomAccessFile类有两个构造方法:
RandomAccessFile(String name, String mode)name是文件名,mode取r或rw

RandomAccessFile(File file,Stringmode) file给出创建流的源
seek(long a) 移动RandomAccessFile流指向文件的指针,a确定指针距文件开头的位置
getFilePointer() 获取当前文件的指针位置;close() 关闭文件
getFD() 获取文件的FileDescriptor;length() 获取文件长度
read() 读取一个字节数据;readBoolean();readByte();readChar();readFloat();readFully(byte b[]);readInt();readLine();readLong();readUnsignedShort();readUTF() 读取一个UTF字符串;setLength(longnewLength) 设置文件长度;skipByte(int n) 在文件中跳过给定数量的字节
write(byte b[])写b.length个字节到文件;writeBoolean(bolean b);writeByte(int v);writeChar(char c);writeChars(Strings);writeDouble(double d)
writeFloat(float v);writeInt(int i);writeLong(long l);writeShort(int i)
writeUTF(String s)

5、管道流
PipedInputStream类;PipedInputStream() 创建一个管道输入流
PipedInputStream(PipedOutputStream a) 连接到输出流a的输入流
read() 从输入流中读取一个字节
read(byte b[],int off,int len) off是在b中的开始位置,len是字节长度
PipedOutputStream类;PipedOutputStream() 创建一个输出流
PipedOutputStream(PipedInputStream a) 连接到输入流a的输出流
write(int b);write(byte b[],int off,int len)
counnect() 连接输入输出流;close() 关闭流;在使用的时候要捕获IOException异常

6、数据流
DataInputStream类(数据输入流)
DataInputStream(InputStream in) 将数据输入流指向一个由in指定的输入流
DataOutputStream类(数据输出流)
DataOutputStream(OutputStream out) 将数据输出流指向一个由out指定的输出流
主要方法:
close();read() 读取一个字节数据;readBoolean() 读取一个布尔值
readByte() 读取一个字节;readChar();readFloat();readFully(byte b[])
readInt();readLine();readLong();readUnsignedShort()
readUTF() 读取一个UTF字符串;skipByte(int n) 在文件中跳过给定数量的字节
write(byte b[]) 写b.length个字节到文件;writeBoolean(bolean b)
writeByte(int v);writeChar(char c);writeChars(Strings);
writeDouble(double d);writeFloat(float v);writeInt(int i)
writeLong(long l);writeShort(int i);writeUTF(String s)

7、对象流
ObjectInputStream类和ObjectOutputStream类分别是DataInputStream类和DataOutputStream类的子类

8、回压输入流
PushbackInputStream类;PushbackInputStream(InputStream in)
PushbackReader类;PushbackReader(Reader in)
unread(char c) 回压一个字符;unread(char c[]) 回压数组c中全部字符
unread(char c[],offset,int n) 回压c中从offset开始的n个字符

第十二章 java网络的基本知识

1、使用URL(统一资源定位)
例如:
try { url=new URL("http://www.sina.com.cn"; }
catch(MalformedURLException e) { System.out.println("Bad URL:"+url);}
在Applet 中链接向另外的Web页面,使用代码:
getAppletContext().showDocument(url);

2、套接字
客户建立到服务器的套接字(Socket)
Socket(String host,int port) host是服务器的IP地址,port是端口号
建立了套接字后可以使用getInputStream()获得输入流,getOutputStream()获得输出流
服务器建立接受客户套接字的服务器套接字(ServerSocket)
ServerSocket(int port) port是端口号
建立了套接字连接后可以使用accept()接收客户的套接字

3、InetAddress类
getByName(String s) 获取Internet上主机的地址
getHostName() 获取InetAddress对象所包含的域名
getHostAddress() 获取InetAddress对象所包含的IP地址
getLocalHost() 获取本地地址

4、UDP数据报
发送数据包,即使用DatagramPacket类将数据打包,有两种构造方法
DatagramPacket(byte data[],int length,InetAddress address,int port)
将含有data数组的数据包将发送到地址是address,端口是port的主机上
DatagramPacket(byte data[],int offset,int length,InetAddress address,int port)
将含有data数组的从offset开始,length长度的数据包将发送到主机上
DatagramSocket(int port)创建一个对象接收数据包,port须和待接收数据包端口相同
例如:如果发送方的数据包端口是5566
DatagramSocket mail=new DatagramSocket(5566);
然后对象mail可以使用方法receive(Datagrampacket pack)接收数据包
在使用参数pack 接收数据包前,必须创建pack
byte data[]=new byte[100];
int length=90;
DatagramPacket pack=new DatagramPataet(data,length);
mail.receive(pack);
该数据包pack将接收长度是length的数据放入data,注意数据长度不要超过8192KB
pack调用方法getPort()获取所接受数据包是从什么端口发出
InetAddress getAddress()获数据包来自哪个主机