import java.io.*;
class Writer2
{
public static void main (String[] args) {
char [] in=new char[50];
int size=0;
try
{
File file=new File("fileWriter2.text");
FileWriter fw=new FileWriter(file);
fw.write("howday\nfolos\n");
fw.flush();
fw.close();
FileReader fr=new FileReader(file);
size=fr.read(in);
System.out.println(size + " ");
for(char c:in)
{
System.out.println(c);
}
fr.close();
}
catch(IOException e)
{
}


    }
}
-------------------------------------------------------------------------
这个代码中
size=fr.read(in);
System.out.println(size + " ");
for(char c:in)
{
     System.out.println(c);
}
这些代码到底应该怎么理解阿?增强FOR到底该怎么理解?
帮忙啊 头痛死了

解决方案 »

  1.   

    个人理解阿!知道vb中的for...each吧,跟这个增强for是一致的,个人认为,for(char c:in)中的c变量起到临时缓冲区的作用,通过内部机制依次指向in数组内成员,这个语句与传统的
    for(int i = 0;i<in.length;i++){
        System.out.println(in[i]);
    }
    相同!
      

  2.   

    FileReader.read(char[] c)的方法是从指定文件读取长度为c.length的字符到字符数组c里。它会返回一个整形值,当读取到文件尾的时候,返回值为-1。foreach循环
    for(char c:in)
    {
       //循环体
    }相当于
    for(int i=0;i<c.length;i++)
    {
        char in = c[i];
        //循环体
    }看得懂吧?
      

  3.   

    写错了
    foreach循环
    for(char c:in)
    {
       //循环体
    }相当于
    for(int i=0;i<in.length;i++)
    {
        char c = in[i];
        //循环体
    }
      

  4.   

    for(char c:in)这里的in就是你前面定义的 char[] in = new char[50];char c是一个定义在循环体内的变量,它的值等于每次循环时char数组in里的一个元素,第一次循环它的值就等于in[0],第二次等于in[1].....