ava进阶——java基础(三):IO流
一、流的概念和作用
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
二、Java流体系结构图
三、Java流体系中常用
四、Java IO流的分类
根据处理数据类型的不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流
五、Java IO流部分对象实例
//Java IO流测试
IOgutter iogutter = new IOgutter();
//System.out.println(iogutter.GetPath());
//iogutter.CreateDir();//创建目录
//iogutter.ReadDir();//读取目录
//iogutter.Delete_DirFile();//删除文件夹和文件
iogutter.Writetxt();//写入文件测试
iogutter.Readtxt();//读取文件测试
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class IOgutter {
/**
* 获取应用程序运行目录
*
* @return
*/
public String GetPath() {
return Main.class.getResource("").getPath();
}
/**
* 创建目录
* File类有两个方法创建文件夹
* ------| mkdir():创建一个文件夹,成功返回true、失败返回false
* 失败表明对象指定的路径已经存在,或者由于该路径不存在,指定文件夹不能被创建
* ------| mkdirs():创建一个文件夹和它的所有父文件夹
*/
public void CreateDir() {
String dirname = "/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test";
File dir = new File(dirname);
dir.mkdirs();
//创建下面实例用于删除的文件夹以及文件
File dir1 = new File(dirname + "/delete_test");
dir1.mkdir();
CreateTxtFile(dirname);//创建文件
}
/**
* 创建文件
*
* @param dirname
*/
private void CreateTxtFile(String dirname) {
File dir2 = new File(dirname + "/delete_test.txt");
try {
if (!dir2.exists())
dir2.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读取目录
*/
public void ReadDir() {
String dirname = "/G:/IntelliJIDEA.Worksapce/001/Dir_Test";
File dir = new File(dirname);
if (dir.isDirectory()) {
System.out.println("目录:" + dirname);
String file[] = dir.list();
for (int i = 0; i < file.length; i++) {
File f = new File(dirname + "/" + file[i]);
if (f.isDirectory())
System.out.println(file[i] + "是目录");
else
System.out.println(file[i] + "是文件");
}
} else
System.out.println("不是目录");
}
/**
* 删除文件夹和文件
* 注意点:删除某一文件夹时必须保证该文件之下没有其他文件才能正确删除
*/
public void Delete_DirFile() {
File folder = new File("/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test");
deleteFolder(folder);//删除文件以及目录
}
/**
* 删除文件以及目录
*
* @param folder
*/
private 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();
}
/**
* 写入文件测试
*/
public void Writetxt() {
File writename = new File("/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test/dir_test.txt");
try {
writename.createNewFile();//创建文件
BufferedWriter out = new BufferedWriter(new FileWriter(writename));
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String Messasge = "";
for (int i = 0; i < 3; i++) {
Messasge += df.format(new Date()) + "dir_test00" + i+"\r\n";
}
out.write(Messasge);
out.flush();
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 读取文件测试
*/
public void Readtxt() {
File readname = new File("/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test/dir_test.txt");
try {
FileInputStream fileInputStream = new FileInputStream(readname);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuffer sb = new StringBuffer();
String text = null;
while((text = bufferedReader.readLine()) != null){
sb.append(text+"\r\n");
}
System.out.println(sb.toString());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}