类型分类
字节输入流:用来读数据
字节输出流:用来写数据
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("\r\n".getBytes());//换行 fileOS.write("二哈".getBytes());//写入汉字 fileOS.write("\r\n".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("\r\n".getBytes());//换行
}
bos.close();