java从0开始学习第十一课-IO也是非常简单的

static void writeFile(String fileName,String text) throws IOException{  
        FileWriter fw=new FileWriter(fileName);  //获取文件写入器  
        BufferedWriter bw=new BufferedWriter(fw); //将文件写入器转成缓存写入器  
        bw.write(text); //缓存写入器写入内容  
        bw.close();  
    }  

     我们知道怎么去读取txt文件的内容,同时也知道怎么把内容写进去了,但是,我们真的熟悉io了吗?这节课,我们要知道非常吊的一些知识:1、什么流,2、字节流和字符流是什么?他们有什么区别?废话少说了,先上图:



 

我草,这个图怎么这么丑啊!!!看来我是不适合当前端工程师了,我想好了,必须选择后端啊,选择服务端或者大数据!!!!等做完这个系列教学,我就给大家做一个hadoop教学篇(我现在还一点都没学过呢,不过先把牛逼吹起来)。

    大家看,流就是一条小河,我们要传输的数据就是河里的水,只有建立了流,我们的java程序才可以跟数据源(txt,xml,doc···)等进行愉快的玩耍,你们知道什么是流了吗??

字节流:就是以字节(byte)为基本单位的流。InputStream,OutputStram

字符流:就是以字符(char)为基本单位的流。Reader,Writer

大家知道区别了吗?

我们看看上一节课的读写文件的程序:

 static String readFile(String fileName) throws IOException{  
        StringBuilder sb=new StringBuilder(); //这个就是咱们要返回的数据  
        FileReader fr=new FileReader(fileName); //获取文件阅读器 fr  
        BufferedReader br=new BufferedReader(fr); //将文件阅读器的内容装进缓存里  
             String a;   
        while((a=br.readLine())!=null){ //将br的内容按行读出来,并且判断是不是空  
            sb.append(a);              //讲内容添加到sb中  
            sb.append("\n");            //换行  
        }  
        return sb.toString();  
    } 
  1. static void writeFile(String fileName,String text) throws IOException{  
  2.         FileWriter fw=new FileWriter(fileName);  //获取文件写入器  
  3.         BufferedWriter bw=new BufferedWriter(fw); //将文件写入器转成缓存写入器  
  4.         bw.write(text); //缓存写入器写入内容  
  5.         bw.close();  
  6.     }  
 

 大家知道这是什么流来实现的吗?以大家的智慧,用屁股都能知道,这个是用字符流来实现的。以后我们只要看到(reader,writer)这2个家伙,我们就知道了,他是字符流。我还写了一个非常牛逼的方法:copy文件,大家如果项目需要用到这个(肯定会的),可以直接拿去用,大家用爽了,请不要忘记我大佬琛啊···

static void copy(File from, File to) {
		try {
			FileInputStream fis = new FileInputStream(from);
			FileOutputStream fos = new FileOutputStream(to);
			BufferedInputStream bis = new BufferedInputStream(fis);
			BufferedOutputStream bos = new BufferedOutputStream(fos);
			int c;
			while ((c = bis.read()) != -1) {
				bos.write(c);
			}
			bis.close();
			bos.close();
			fis.close();
			fos.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

OK,今天的课结束了,是不是超级简单啊??

ps:我的梦想就是写一本java的书,我发现了现在全世界的java教学课本都非常非常枯燥乏味,看起来像吃屎那么恶心。我将来一定要写一本非常非常有趣的java教程,首先做成pdf放在网上,随便大家下载。

猜你喜欢

转载自linbulu.iteye.com/blog/2296457