Java 流(Stream)、文件(File)和IO
Java.io 包几乎包含了全部操做输入、输出须要的类。全部这些流类表明了输入源和输出目标。html
Java.io 包中的流支持不少种格式,好比:基本类型、对象、本地化字符集等等。java
一个流能够理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据windows
http://www.runoob.com/java/java-files-io.html缓存
@Test
public void testFileStream() throws Exception {
//1 写入文件
File file = new File("D:\\test2.txt");
//构建FileOutputStream对象,文件不存在会自动新建
FileOutputStream fileOutputStream = new FileOutputStream(file);
// 构建OutputStreamWriter对象,参数能够指定编码,默认为操做系统默认编码,windows上是gbk
OutputStreamWriter outputStreamWriter =new OutputStreamWriter(fileOutputStream,"UTF-8");
//写入缓冲区
outputStreamWriter.write("中文输入");
//换行
outputStreamWriter.append("\r\n");
outputStreamWriter.append("English");
// 刷新缓存冲,写入到文件,若是下面已经没有写入的内容了,直接close也会写入
//关闭写入流
outputStreamWriter.close();
// 关闭输出流,释放系统资源
fileOutputStream.close();
//2 从文件中读取数据
// 构建FileInputStream对象
FileInputStream fileInputStream = new FileInputStream(file);
// 构建InputStreamReader对象,编码与写入相同
InputStreamReader inputStreamReader= new InputStreamReader(fileInputStream,"UTF-8");
StringBuffer stringBuffer = new StringBuffer();
while (inputStreamReader.ready()){
// 转成char加到StringBuffer对象中
stringBuffer.append((char)inputStreamReader.read());
}
System.out.println(stringBuffer.toString());
// 关闭读取流
inputStreamReader.close();
// 关闭输入流,释放系统资源
fileInputStream.close();
}
会在D盘建立 test2.txt文件
控制台输出:
// 删除文件及目录public static void deleteFolder(File folder) { File[] files = folder.listFiles(); if (files != null) { for (File f : files) { if (f.isDirectory()) { deleteFolder(f); } else { f.delete(); } } } folder.delete();}