JAVA IO


IO: 理解流的概念
 (1)Java的流分为两大类:节点流类和字符流;
 (2)InputStream与OutputStream类;
      1、输入流:程序可以从中读取字节的对象叫输入流,在Java中,用InputStream类来描述所有输入流的抽象概念;
      2、输出流:程序可以像其中连续写入字节的对象叫输出流,在Java中,用OutputStream类来描述所有输出流的抽象概念;
 (3)FileInputStream与FileOutputStream类;
      1、用来创建磁盘文件的输入流和输出流对象,通过对他们的构造函数指定文件路径和文件名。
      2、创建FileInputStream实例对象时,指定的文件应当是存在和可读的。创建FileOutputStream实例对象时,如果指定的文件已经存在,这个文件的原来内容将被覆盖清除;
      1、创建FileOutputStream实例对象时,可以指定还不存在的文件名,不能指定一个已被其他程序打开了的文件。
      2、对于同一个磁盘文件创建FileOutputStream对象的两种方式:
      3、FileInputStream inOne = new FileInputStream("heima.txt");
      4、File f = new File("heike.txt");
       FileInputStream inTwo = new FileInputstream(f);
例子:

package com.heima.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class IOTest {

      public static void main(String[] args)   {
    	  
    	  FileOutputStream out = null;
    	  FileInputStream in = null;
	      try {
	    	  
              out = new FileOutputStream("heima.txt");
              out.write("heima".getBytes());
             
              File f = new File("E:" + File.separator + "heike.txt");
              byte [] buf = new byte[(int)f.length()];
              in = new FileInputStream(f);
              int len = in.read(buf);        
              System.out.println(new String(buf,0,len - 1));
          } catch (FileNotFoundException e) {
                   e.printStackTrace();
          } catch (IOException e) {
                   e.printStackTrace();
	      } finally {
	    	  if(out != null) {
	    		  try {
					out.close();
				} catch (IOException e) {
					 
					e.printStackTrace();
				}
	    	  }
	    	  
	    	  
	      }
	      
	      
	      
	   
    FileWriter fw = null;
	try {
		fw = new FileWriter("hello2.txt");
		fw.write("www.it315.org");//直接写入字符串
		out.close();//执行此语句写入的字符串才能实现刷新
		char [] buf = new char[1024];
		FileReader fr = new FileReader("hello2.txt");//读取文件
		int len = fr.read(buf);
		System.out.println(new String(buf,0,len));         
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
  
      }

}

字符流的缓冲区:
对应类:BufferedWriter、BufferedReader 需结合流才能使用。
它的出现是为了提高流的操作效率,所以在创建缓冲区前必须要先有流对象。
:只要用到缓冲区就要记得刷新。bufferWriter.flush();
package com.heima.io;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedTest {

		public static void main(String[] args) 
		{
			BufferedWriter bw = null;
			FileWriter fw = null;
			try {
				fw = new FileWriter("BufferedWriterTxt.txt");
				bw = new BufferedWriter(fw);
				bw.write("I like java");
				bw.flush();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				try
				{	
					if(bw != null) {					
						bw.close();
					}
					if(fw != null) {					
						fw.close();
					}
				} catch (IOException e) {
					e.printStackTrace();
				}

			}
		}
	

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值