JAVA中的基本IO流及高效缓冲流读写文件的4中方法

一:基本IO流

1.字节输出流超类:OutputStream 

      作用:从java程序将数据写入到文件中,每次只操作文件中的1个字节

    使用其子类,FileOutputStream操作文件

2.字节输入流超类:InputStream

    作用:从文件中读取字节到程序,每次只读取一个字节

    使用其子类FileInputStream读取文件

3.转换流:

            OutputStreamWriter,字符流到字节流的桥梁

            InputStreamReader,字节流到字符流的桥梁

4.字符输出流:FileWriter

5.字符输入流:FileReader

二:高效缓冲流

    BufferedInputStream:高效字节输入流

    BufferedOutputStream:高效字节输出流

    BufferedWriter:高效字符缓冲流

    BUfferedReader:高效字符输入流

1.字节流复制文件1.一次读取写入一个字节

               FileInputStream fis = new FileInputStream(new File("C:\\a.txt"));
               FileOutputStream fos = new FileOutputStream(new File("C:\\b.txt"));
               int len = 0;
               // 一次读取一个字节
               while ((len = fis.read()) != -1) {
                    fos.write(len);
                    fos.flush();
               }
               fis.close();
               fos.close();

2.字节流复制文件2.一次读取写入一个字节数组

                FileInputStream fis = new FileInputStream(new File("C:\\JD_PHONE_LIST_UTF-8.txt"));
		FileOutputStream fos = new FileOutputStream(new File("C:\\b.txt"));
		int len = 0;
		byte[] bytes =new byte[1024];
		// 一次读取一个字节
		while ((len = fis.read(bytes)) != -1) {  
			fos.write(bytes,0,len);
			fos.flush();
		}
		fis.close();
		fos.close();
3.字节流复制文件3.一次读取写入一个字节到缓冲流
                FileInputStream fis = new FileInputStream(new File("C:\\JD_PHONE_LIST_UTF-8.txt"));
		BufferedInputStream bis = new BufferedInputStream(fis);
		FileOutputStream fos = new FileOutputStream(new File("C:\\b.txt"));
		BufferedOutputStream bos = new BufferedOutputStream(fos); 
		int len =0;
		while((len = bis.read())!=-1){
			bos.write(len);
			bos.flush();
		}
		bis.close();
		bos.close();
4.字节流复制文件4.一次读取写入一个字节数组到缓冲流
                FileInputStream fis = new FileInputStream(new File("C:\\JD_PHONE_LIST_UTF-8.txt"));
		BufferedInputStream bis = new BufferedInputStream(fis);
		FileOutputStream fos = new FileOutputStream(new File("C:\\b.txt"));
		BufferedOutputStream bos = new BufferedOutputStream(fos); 
		int len =0;
		byte[] bytes=new byte[1024];
		while((len = bis.read(bytes))!=-1){
			bos.write(bytes, 0, len);
			bos.flush();
		}
		bis.close();
		bos.close();

5.高效字符缓冲流复制文件一次读取一行:

                BufferedReader br = new BufferedReader(new FileReader(new File("C:\\JD_PHONE_LIST_UTF-8.txt")));
		BufferedWriter bw = new BufferedWriter(new FileWriter(new File("C:\\b.txt")));
		String line ="";
		while((line =br.readLine())!=null){
			bw.write(line);
			bw.newLine();
			bw.flush();
		}
		br.close();
		bw.close();

6.高效字符缓冲流转换流复制文件一次读取一行:

                //以UTF-8编码读取
		BufferedReader bReader  = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\JD_PHONE_LIST_UTF-8.txt"), "UTF-8"));
		//以ISO-8859-1编码写出
		BufferedWriter bWriter =new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:\\b.txt"), "ISO-8859-1"));
		String line = null;
		while((line =bReader.readLine())!=null){
			bWriter.write(line);
			bWriter.newLine();
			bWriter.flush();
		}
		bReader.close();
		bWriter.close();    

你可能感兴趣的:(IO)