由于在进行数据交互时,频繁的使用输入输出流。在此记录一下相关操作。
一、文件输入/输出流(FileInputStream/FileOutputStream类)
常用构造方法:
FileInput(String name);
FileOutputStream(File file);
//创建文件对象
File file = new File("word.txt");
//创建FileOutputStream对象
FileOutputStream out=new FileOutputStream(file);
//创建byte字节
byte send[]="123.".getbyte();
//将数据写入输出流
out.write(send);
out.close();
/***********************************/
//创建FileInputStream对象
FileInputStream in = new FileInputStream(file);
//创建1024字节位的数组储存数据
byte receive[]=new byte[1024];
//从输入流读取数据
int len=in.read(receive);
//输出文件信息
System.out.println("文件中的信息"+new String(receive,0,len);
in.close();
要注意的是由于汉字占两个字节位,当使用字节流时,可能会出现乱码现象,此时一般使用Reader/Writer字符流。FileReader/FileWriter对应FileInputStream/FileOutputStream,不同的是前者只要不关闭流,会持续按照顺序读取源中其余内容,直到源的末尾或源关闭。
二、带缓存的输入/输出流(BufferedInputStream/BufferedOutputStream)
可用于创建缓存区,达到优化性能的目的。BufferedInputStream类有两个构造方法。
BufferedInputStream(InputStream in); //创建一个带有32字节的缓存流
BufferedOutputSteam(InputSream in,int size) //按照指定大小创建
flush()方法用于强制将缓存区的数据输出,只作用于OutputStream的子类。
同样的BufferedReader与BufferWriter也具有缓存机制。
BufferedReader类的常用方法如下:
read():读取单个字符。
readLine():读取一个文本行,并将其返回字符串,若无数据可读则返回null。
write(String s,int off,int len):写入字符串的某一部分。
flush():刷新流的缓存。
newLine():写入一个行分隔符。
其他的还有数据输入\输出流、zip压缩输入\输出流.