一 迭代器( iterator s)
迭代器是一个能够循环访问,获取或删除元素的对象.
在通过迭代器访问集合之前,你必须先获得一个集合.每个集合类都提供了一个iterator()方法,它将一个迭代器返回到集合的开始处.
通过使用这个迭代器对象,你可以访问集合中的每个元素,一次一个元素
●Iterator类提供了以下方法:
●hasNext():检查序列中是否还有元素.如果还有元素,则返回true;否则,返回false
●next():获得序列中的下一个元素
●remove():将迭代器新返回的元素删除
Iterator类必须从 java .util包中导入
import java.util.Iterator;
import java.util.LinkedList;
public class MyJavaClass{
public static void main(String[] args){
LinkedList<String> animals=new LinkedList<String>();
anim.add(“dog”);
animals.add(“cat”);
animals.add(“monkey”);
animals.add(“bear”);
Iterator<String> it=animals.iterator();
String value=it.next();
System.out.println(value);}
} //输出”dog”
it.next()返回列表中的第一个元素,然后将迭代器移动到下一个元素.每次调用it.next()时,迭代器都会移动到列表的下个元素.
通常,迭代器被用于循环中.在循环的每次迭代中,都可以访问相应的列表元素.
import java.util.Iterator;
import java.util.LinkedList;
public class MyJavaClass{
pulic static void main(String[] args){
LinkedList<String> animals=new LinkedList<String>();
animals.add(“dog”);
animals.add(“cat”);
animals.add(“monkey”);
animals.add(“bear”);
Iterator<String> it=animals.iterator();
while(it.hasNext()){
String value=it.next();
System.out.println(value);}
}
}// 输出 dog cat monkey bear
it.hasNext()判断迭代器是否有附加元素,打印元素的值,并将迭代器推进到下一个元素.
二 使用文件
java.io包中有一个File类,允许你使用文件
首先,创建一个File对象,并在 构造函数 中指定文件的路径
import java.io.File;
…
File file=new File(“D:\data\input-file.text”);
使用 exists ()方法,你可以确定文件是否存在
import java.io.File;
public class MyJavaClass{
public static void main(String[] args){
File x=new File(“D:\data\23.text”);
if(x.exists()){
System.out.println(x.getName()+”exists!”); }
else{
System.out.println(“The file does not exist”);}
}
}
●getName()方法返回文件的名称.我们在路径中使用 双 反斜杠 ,因为一个一个反斜杠是转义字符
三 读取文件
文件对于存储和检索数据非常有用,并且有许多方法可以从文件中读取.
最简单的方法就是使用java.util包中的 Scanner 类
Scanner类的构造函数可以将File对象作为参数输入.
try{
File x= new File(“D:\data\23.text”);
Scanner sc=new Scanner(x); //创建File对象x,并将x作为参数传给Scanner对象
}
catch(FileNotFoundException e){
….} //由于文件可能不存在,所以我们使用try/catch语句来保护代码
●我们可以使用Scanner对象的next()方法来读取文件的内容
try{
File x=new File(“D:\data\23.text”);
Scanner sc=new Scanner(x);
while(sc.hasNext()){
System.out.println(sc.next());}
sc.close();
}
catch(FileNotFoundException e){
System.out.println(“Error”); }
文件内容逐字输出.因为next()方法分别返回每个单词
●关闭文件是个好习惯,一种方法是使用Scanner类的close()方法.
四 创建和写入文件
Formatter是java.util包中 用于创建内容并将其写入文件 的类
import java.util.Formatter;
public class MyJavaClass{
public static void main(String[] args){
try{
Formatter f=new Formatter(“D:\data\34.text”);
}
catch(Exception e){
Syste.out.println(“Error”);}
}
}
这将在指定的路径中创建一个空文件.如果该文件已经存在,这将覆盖它.同样,需要使用try/catch语句来保护代码,因为操作可能失败
一旦创建了文件,就可以使用相同的Formatter对象的format()方法向其中写入内容
import java.util.Formatter;
public class MyJavaClass{
public static void main(String[] args){
try{
Formatter f=new Formatter(“C:\data\23.text”);
f.format(“%s %s %s”,”1″,”Leon”,”Wang rn”);
f.format(“%s %s %s”,”2″,”Lu”,”Lin”);
f.close();}
catch(Exception e){
System.out.println(“Error”);}
}
}
format()方法根据第一个参数来设置参数的格式.
%s表示一个字符串,并在格式之后被get的第一个参数.第二个%s被下一个替换,以此类推.所以,格式%s %s %s表示三个用空格分隔的字符串
●rn是Windows中的换行符号
上面的代码创建一个包含以下内容的文件:
1 Leon Wang
2 Lu Lin
完成写入文件之后,不要忘记用close()来关闭文件
至此,java的大体内容已经完毕.在后边的文章中,我会更新更多详细的内容.包括java,以及Android的教程,前端语言的教学,还有号称”最好的编程语言”Python的教学.