------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
在Java的基础学习中,感觉IO方面比较乱,对此用思维导图及代码做了一些归纳和总结。由于个人能力有限,有错误误或不完善的地方,敬请指正,谢谢!
1:测试File类
public class TestJavaList {
private static ArrayList<String>al = new ArrayList<String>();
//查询指定目录下的的,java文件。并保存到集合中。
public static void searchJavaFile(File dir){
File[] files = dir.listFiles();
for(int i = 0; i < files.length;i++)
{
if(files[i].isDirectory())
searchJavaFile(files[i]);
else{
if(files[i].toString().endsWith(".java"))
al.add(files[i].getAbsolutePath());
}
}
}
//把集合的文件保存到指定文件中
public static void saveJavaFile(String filename) throws IOException{
FileWriter fw = new FileWriter(filename);
BufferedWriter bw = new BufferedWriter(fw);
for(Iterator<String> it = al.iterator();it.hasNext();){
String str = it.next();
bw.write(str);
bw.newLine();
}
bw.close();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File dir = new File("D:\\dir");
String filename ="d:\\file.txt";
searchJavaFile(dir);
try {
saveJavaFile(filename);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2:测试Properties类
public class TestProInfo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//Set<String>set = toProperties().stringPropertyNames();
//for(String str:set)
//System.out.println(str);
System.out.println(toProperties1());
}
//将info.txt中的信息放到Properties集合中。
public static Properties toProperties1() throws IOException{
FileReader fr = new FileReader("d:\\info.txt");
Properties p = new Properties();
p.load(fr);
p.setProperty("张三", "21");
FileWriter fw = new FileWriter("d:\\info.txt");
p.store(fw, "haha");
return p;
}
public static Properties toProperties() throws IOException{
FileReader fr = new FileReader("d:\\info.txt");
BufferedReader br = new BufferedReader(fr);
Properties p = new Properties();
while(true){
String str = br.readLine();
if(str==null)
break;
String[] str_arr=str.split("=");
p.setProperty(str_arr[0], str_arr[1]);
}
return p;
}
}
3:测试RandomAccessFile类
public class TestRanAcessFile {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("d:\\random.txt");
try {
write(file);
read(file);
write1(file);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void write1(File file) throws IOException{
文件不存在,会自动创建。
RandomAccessFile raf = new RandomAccessFile(file,"rw");
raf.seek(16);
raf.write("王五".getBytes());
raf.writeInt(56);
raf.close();
}
public static void write(File file) throws IOException{
//文件不存在,会自动创建。
RandomAccessFile raf = new RandomAccessFile(file,"rw");
raf.write("张三".getBytes());
raf.writeInt(97);
raf.write("李四".getBytes());
raf.writeInt(87);
raf.close();
}
public static void read(File file) throws IOException
{
if(!file.exists()){
System.out.println("文件不存在");
return;}
RandomAccessFile raf = new RandomAccessFile(file,"r");
//raf.seek(8);
byte[] buf = new byte[4];
raf.read(buf);
String name = new String(buf);
System.out.println("name"+"::::"+name);
int age = raf.readInt();
System.out.println("age"+"::::"+age);
System.out.println(raf.getFilePointer());
raf.close();
}
}