JavaIO:站在内存的角度可以理解为文件的输入(input)和文件的输出(output);
文件的输入:将硬盘上的文件读入内存;
文件输出:将内存中的数据存入硬盘文件;
在硬盘上我们可以对文件或者文件夹进行创建、删除、查询等操作;在java中怎么对文件进行这些操作,这就需要我们对java.io.File类有所了解了。
创建文件名为a的txt文件:File f = new File("a.txt"); f.createNewFile();
删除c盘中的b.txt文件:File f = new File("c:\\b.txt");f.delete();
在d盘中新建一个文件夹:File f = new File("d:\\我的文件夹"); f.mkdir();
得到桌面上的所有文件:
File f = new File("c:\\windows");File[] fs = f.listFiles();
for(int i=0;i<fs.length;i++){
System.out.println(fs[i].getName());
}
如何从硬盘中读入文件?有下面几种方式:
1) 使用java.io.FileInputStream
一般情况,将文件用字节数组来读入
File f = new File("c:\\a.txt");
FileInputStream fis = new FileInputStream(f);
byte[] data = new byte[(int)f.length()];//空数组
is.read(data);
String str = new String(data);
System.out.println(str);
2) 使用java.io.FileReader
一般情况,将文件用字符数组来读入
File f = new File("c:\\.txt");
FileReader fr = new FileReader(f);
char[] data = new char[(int)f.length()];//空数组
r.read(data);
String str = new String(data);
System.out.println(str);
3)一行一行读,适合非常大的文件java.io.BufferedReader 配合 java.io.FileReader
File f = new File("image.png");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
while(true){
String str = br.readLine();
if(str==null) break;
System.out.println(str);
}
如何将内容写入硬盘?
1) 使用java.io.FileOutputStream
一般情况,将文件用字节数组来写出
File f = new File("c:\\a.txt");
FileOutputStream ous = new FileOutputStream(f);
String str = "经世致用";
ous.write(str.getBytes())
ous.close();//养成关掉输入输出流的编程习惯
2) 使用java.io.FileWriter
一般情况,将文件用字符数组来写出
File f = new File("c:\\a.txt");
FileWriter fw = new FileWriter(f);
String str = “经世致用”;
fw.write(str);
fw.close();
文件的输入输出一般使用输入流(java.io.FileInputStream)输出流(java.io.FileOutputStream),
不过也经常会用到上面几种方式,除此以外偶尔还会用到随机存取文件RandomAccessFile,
有时间的话大家可以去更深入的研究文件的输入输出!