《javaio操作实现文件读取》由会员分享,可在线阅读,更多相关《javaio操作实现文件读取(5页珍藏版)》请在金锄头文库上搜索。
1、java i/o操作实现文件读取Java的六十输入输出建立在四个抽象类基础上:InputStream、OutPutStream、Reader和Writer。其中前两个设计成字节流,后两个设计成字符流。要读取文件, 我们主要用到四个继承类,FileWriter,FileReader,FileInputStream和FileoutPutStream.如果要提高读取与写入速度可以用缓冲流BufferedWriter,BufferedReader,BufferedInputStream 和BufferedOutputstream。缓冲流通过把内存缓冲区连到输入输出来扩展一个过滤流类,提高了程序性能。1
2、、ascII码文件(1) 写入: 打开文件: FileWriter fw = new FileWriter(writerfile); BufferWriter bw = new BufferWriter(fw); 输出: bw.write();bw.newLine();/换行 写入完成后关闭pw.close();fw.close();(2) 读取 打开文件 FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr);/可选 读入: br.readLine();/从当前文件读取一行。或者 br.
3、read(char .);/读取去一行或指定个数字符。 写入完成后关闭br.close(); fr.close();上述如出现错误,出现错误抛出异常例import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class readline public static void readline(String file,String writerfile) try F
4、ileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); FileWriter fw = new FileWriter(writerfile); /写文件操作,把得到的file对应的文件中内容写入,writerfile中去。 BufferedWriter bw = new BufferedWriter(fw); String readoneline; int l; while(l = br.read() != -1) readoneline = br.readLine(); bw.write
5、(readoneline); bw.newLine(); System.out.println(readoneline); bw.flush(); br.close(); bw.close(); br.close(); fw.close(); fr.close(); catch(IOException e) e.printStackTrace(); public static void main(String args) readline(e:pr.txt,e:aa.txt); 2、二进制文件(1) 输出 FileOutputStream fos = new FileOutputStream(
6、File对象 或者文件名); BufferedOutputStream bs = New BufferOutputstream(fos);/可选是为了提高读取速度(2) 输入 FileInputStream fIs = new FileInputStream(File对象 或者文件名); BufferedInputStream bs = New BufferInputstream(fIs);/可选是为了提高读取速度 例子:1. import java.io.BufferedInputStream; 2. import java.io.BufferedOutputStream; 3. impor
7、t java.io.FileInputStream; 4. import java.io.FileOutputStream; 5. 6. class BufferedCopy 7. public static void main(String args) throws Exception 8. BufferedInputStream bis = null; 9. BufferedOutputStream bos = null; 10. 11. try 12. FileInputStream fis = new FileInputStream(args0); 13. bis = new Buff
8、eredInputStream(fis); 14. 15. FileOutputStream fos = new FileOutputStream(args1); 16. bos = new BufferedOutputStream(fos); 17. 18. int byte_; 19. while (byte_ = bis.read() != -1) 20. bos.write(byte_); 21. 22. 23. catch(FileNotFoundedException e) 24. 25. e.printstackTrace(); 26. 27. (3) 关于DataInputst
9、ream 和DataOutputStream上述流(带缓冲流无关紧要)只能一次读入或者读出一个字节,如果要读出读入、读出任意类型就需要用到DataInputStream和DataOutputStream了。如readInt(),readDouble(),readUTF()等,及读取任意类型。相应的WriteInt writeDouble,WriteUTF();DataInputStream和DataOutputStream的构造函数中是一个流,为了加快读取速度,一般是三重嵌套,即基本输入输出字节流、缓冲流、data流。例子:import java.io.*; public class IOTe
10、st public static void main(String args) throws Exception FileOutputStream out=new FileOutputStream(e:/io.txt); BufferedOutputStream bout=new BufferedOutputStream(out); DataOutputStream dout=new DataOutputStream(bout); dout.writeByte(-12); dout.writeLong(12); dout.writeChar(1); dout.writeFloat(1.01f)
11、; dout.writeUTF(好); /读取此字符串必须用相应的ReadUTF();一一对应关系 dout.close(); FileInputStream in=new FileInputStream(e:/io.txt); BufferedInputStream bin=new BufferedInputStream(in); DataInputStream din=new DataInputStream(bin); System.out.println(din.readByte(); System.out.println(din.readLong(); System.out.println(din.readChar(); System.out.println(din.readFloat(); String s; s=din.readUTF(); System.out.println(s); din.close(); 最后,java默认存储的二进制是大端格式,即高位在前,低位在后,且与平台无关。所以如果要读取c语言存储的类型先要判断c语言存储的格式,如用VC存储要进行转换。文章来源:北大青鸟 http:/