字节输入流:用来读数据
字节输出流:用来写数据
File类常用方法
createNewFile():当文件不存在时,创建一个由该路径名命名的新文件,返回布尔型
File file = new File("E:\Java\Demo\createNewFile.txt");
boolean newFile = file.createNewFile();//此处会由异常,可以用throws抛出
System.out.println(newFile);
mkdir():创建单级目录,返回布尔型
File file = new File("E:\Java\Demo\mkdir");
boolean mkdir = file.mkdir();
System.out.println(mkdir);
mkdirs():创建多级目录,返回布尔型
File file = new File("E:\Java\Demo1\mkdirs1");
boolean mkdirs = file.mkdirs();
System.out.println(mkdirs);
isDirectory():测试是否为目录
isFile():测试是否为文件
exists():测试File是否存在
getAbsolutePath():返回绝对路径字符串
getPath();将抽象路径名转换为路径名字符串
getName():获取文件或者目录名
delete():删除文件或者目录
字节流写数据InputStream:输入流的超类
OutputStream:输出流的超类
FileOutputStream 代码示例——写数据:(异常还可用throws抛出)
FileOutputStream fileOS = null;
try {
fileOS = new FileOutputStream("test.txt", true);//后面的true是判断是否接着在后面添加
fileOS.write(97);//写入的是一个a
fileOS.write(98);//写入的是一个b
fileOS.write("rn".getBytes());//换行
fileOS.write("二哈".getBytes());//写入汉字
fileOS.write("rn".getBytes());
} catch (IOException ioException) {
ioException.printStackTrace();
} finally {
if (fileOS != null) {
try {
fileOS.close();
}catch (IOException ioException){
ioException.printStackTrace();
}
}
}
FileInputStream 代码示例——读数据(异常参考写数据)
FileInputStream fi = new FileInputStream("test.txt");
byte[]fiArr=new byte[1024];
int len;
while ((len=fi.read(fiArr))!=-1){
System.out.println(new String(fiArr,0,len));
}
fi.close();
如何复制某个文件中的内容写入另外一个文件
代码示例:
public class Main {
public static void main(String[] args) throws IOException {
File fileOutput = new File("IOTest.txt");//写入地址
File fileInput = new File("test.txt");//复制地址
if(!fileOutput.isFile()){
fileOutput.createNewFile();
copyData(fileInput,fileOutput);
}
else {
copyData(fileInput,fileOutput);
}
}
public static void copyData(File fileInput,File fileOutput) throws IOException{
FileInputStream fileIS = new FileInputStream(fileInput);
FileOutputStream fileOS = new FileOutputStream(fileOutput);
byte[] bytes=new byte[1024];
int len;
while ((len= fileIS.read(bytes))!=-1){
fileOS.write(bytes,0, len);
}
fileIS.close();
fileOS.close();
}
字节缓冲输入输出流:能够使效率更快
字节缓冲输出流代码示例
BufferedInputStream bis=new BufferedInputStream(new FileInputStream("IOTest.txt"));
byte[]a=new byte[1024];
int len;
while ((len= bis.read(a))!=-1){
System.out.println(new String(a,0,len));//获取数组a的0到len的数据
}
字节缓冲输入流代码示例:
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("IOTest.txt"));
for(int i=0;i<5;i++){
bos.write("java".getBytes());
bos.write("rn".getBytes());//换行
}
bos.close();


