Java连载94-增强for循环、IO流与文件

236 阅读2分钟

一、JDK5.0新特性

1.增强for循环

2.语法

for(类型 变量:数组名/集合名){}

集合想要使用增强for循环这种语法,集合需要使用泛型。

如果不使用泛型,那么需要哦使用Object类型来定义集合中的元素

[url=][/url]
packagecom.bjpowernode.java_learning;importjava.util.*;​publicclassD94_1_EnhanceForCirculation { publicstaticvoidmain(String[] args) { int[] a = {1,2,3,4,5,6}; //遍历 for(inti=0;i<a.length;i++) { System.out.println(a_); } System.out.println("================="); //使用foreach for(inte:a) {//int e代表的是集合或者数组中的每一个元素 System.out.println(e); } System.out.println("================="); //集合 Set<String> strs =newHashSet<String>(); strs.add("hdosafj"); strs.add("hdosafdfgdfgj"); strs.add("hdoyikiljsafj"); strs.add("hdojhgjsafj"); //使用foreach遍历 for(String s:strs) { System.out.println(s); } System.out.println("================="); //练习一个反例:集合不使用泛型 List l =newArrayList(); l.add("josdajf"); l.add(45); l.add(false); //如果不使用泛型,那么需要哦使用Object类型来定义集合中的元素 for(Object o :l){ System.out.println(o); } System.out.println("================="); String[] ins = {"运动","音乐","旅行","美食"}; StringBuffer sb =newStringBuffer(); for(inti=0;i<ins.length;i++) { if(i==ins.length-1) { sb.append(ins_); }else{ sb.append(ins_); sb.append(","); } } //以上的循环就不适用增强for,因为最后一个元素无法特殊处理​ }}[url=]

[/url]
__

3.关于增强for循环的缺点:

(1)没有下标;

二、IO流与文件

1.流根据方向可以分为:输入流和输出流。

2.注意:输入流和输出流是相对于内存而言的。从内存里出来就是输出流,到内存中去就是输入。输入流又叫做InputStream,输出流又叫做OutputStream,输入还叫做“读read",输出又称为”写write"。

3.流根据读取数据可以分为:字节流和字符流,字节流是按照字节的方式进行读取,字符流是按照字符的方式进行读取。一次读取两个字节。java语言中一个字符占用两个字节。

4.字节流适合读取视频、声音、图片等二进制文件。例如:word文件,实际上这不是纯文本文件,它是一种二进制文件。

5.字符流适合读取,纯文本文件。

6.java语言中所有的字节流都是以Stream结尾,所有的字符流都含有Reader或者writer。

7.需要掌握的16个流:

在这个包下:java.io*;

(1)FileInputStream

(2)FileOutputStream

(3)FileReader

(4)FileWriter

带缓存的

(5)BufferedReader

(6)BufferedWriter

(7)BufferedInputStream

(8)BufferedOutputStream

读取数据的

(9)DataInputStream

(10)DataOutputStream

(11)ObjectInputStream

(12)ObjectOuputStream

转换流(字节流转化为字节流)

(13)InputStreamReader

(14)OutputStreamWriter

(15)PrintWriter

(16)PrintStream

三、源码:

D94_1_EnhanceForCirculation.java

github.com/ruigege66/.…_1_EnhanceForCirculation.java

__