IO
Input、Output—–输入与输出。当我们的Java程序需要和外部进行数据交换的时候,就需要用到输入输出流了。
- 输入:数据从外部进入Java程序
- 输出:数据从Java程序进入外部
Java的流操作分为字节流和字符流
- 字节流(能操作任意类型的数据)
所有的读操作都继承自一个公共超类 : java.io.InputStream类
所有的写操作都继承自一个公共超类 :java.io.OutputStream类
- 字符流(能操作文本信息)
所有的读操作都继承自一个公共超类 : java.io.Reader类
所有的写操作都继承自一个公共超类 :java.io.Writer类
下面来实现一下文件的读写和创建
package com0907;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class RWFile {
//读写文件
public byte[] Read(String FileName){
try {
//创建流
InputStream in = new FileInputStream(FileName);
//获取文件所有的字节数
int length = in.available();
//创建字节数组
byte[] content = new byte[length];
in.read(content);
//关闭流
in.close();
return content;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return new byte[0];
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return new byte[0];
}
}
//创建目录
public void createDir(String dirName){
File dir = new File(dirName);
//判断目标目录是否存在
if(dir.exists()){
System.out.println("创建"+dirName+"目录失败!目标目录已经存在!!!");
}
//解决跨平台问题
if(!dirName.endsWith(File.separator)){
dirName = dirName + File.separator;
}
//创建目录
if(dir.mkdirs()){
System.out.println("创建目录:"+dirName+"成功!");
}else {
System.out.println("创建目录:"+dirName+"失败!");
}
}
//创建文件
public void createFile(String fileName){
File file = new File(fileName);
//判断文件是否存在
if(file.exists()){
System.out.println("创建文件"+fileName+"失败,目标文件已经存在!");
}
if(fileName.endsWith(File.separator)){
System.out.println("创建文件失败,目标文件不能为目录!");
}
//判断目标文件所在的目录是否存在
if(!file.getParentFile().exists()){
System.out.println("目标文件所在的目录不存在,正准备创建它!");
}
//创建目标文件
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args){
RWFile rwfile = new RWFile();
byte[] content;
content = rwfile.Read("C:\\Users\\sunxiaona\\Desktop\\Java\\OPP\\src\\io\\RWFile.java");
//生成字符串
String str = new String(content);
System.out.println(str);
//创建目录
String dir = "D:\\first\\second\\third";
rwfile.createDir(dir);
//创建文件
String file = dir + "\\file.txt";
rwfile.createFile(file);
try {
OutputStream out = new FileOutputStream(file);
try {
out.write(content);
out.close(); //关闭流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}