Java IO流
来源:互联网 发布:c webservice json 编辑:程序博客网 时间:2024/06/03 18:19
一.File类
public void test01() throws IOException { //文件或目录的绝对路径 File file = new File("f:/a.jpg"); file = new File("f:/","a.jpg"); //创建文件,目录必须正确,文件存在时返回false file.createNewFile(); //创建一层目录和多层目录 file.mkdir(); file.mkdirs(); //判断方法,返回true/false file.exists(); file.isDirectory(); file.isFile(); //获取方法 System.out.println(); //获取文件名,父目录名,父目录,完整路径,文件大小 file.getName(); file.getParent(); file.getParentFile(); file.getPath(); file.length(); //获取当前目录所有目录和文件,目录名和文件名,盘符 file.listFiles(); file.list(); File.listRoots(); //删除文件或目录(目录中有文件删除不了) file.delete(); //移动文件或重命名 file.renameTo(new File("f:/b.jpg"));}
二.字符流
1.FileReader类和FileWriter类
public void test01() throws Exception { //文件不存在会报错// FileReader reader = new FileReader(new File("f:/a.txt")); FileReader reader = new FileReader("f:/a.txt"); int num = 0; String word = ""; char[] buf = new char[10]; //一个一个字读出来 while((num = reader.read()) !=-1) { word += (char)num; } //按数组的长度读出来放数组里 while((num = reader.read(buf))!=-1) { word += new String(buf,0,num); } reader.close(); System.out.println(word);}
public void test02() throws IOException { //为false或无时,是覆盖.为true时是追加。 FileWriter w = new FileWriter("f:/b/a",false); FileWriter w2 = new FileWriter(new File("f:/b/a"),true); //文件不存在会自动创建,目录不存在会报错 FileWriter writer = new FileWriter("f:/b.txt"); char[] buf = {'一','二'}; //写入字符数组,字符,字符串 writer.write(buf); writer.write('三'); writer.write("四五六"); //返回Writer对象 writer.append('七').append("八九十"); //将缓存区数据写入, //在close中会自动调用,无须在close前显式调用 writer.flush(); writer.close();}
2.BufferedReader类和BufferedWriter类
public void test03() throws IOException { FileReader r = new FileReader("f:/a/a.txt"); FileWriter w = new FileWriter("f:/b/b.txt"); //使用缓冲区,提高效率 BufferedReader br = new BufferedReader(r); //允许自定义缓冲区大小(FileWriter的缓存区太小) BufferedWriter bw = new BufferedWriter(w,1024*10); String word; //提供了一个读行的方法 while ((word = br.readLine())!=null) { bw.write(word); bw.newLine(); } bw.close(); br.close(); r.close(); w.close();}
三.字节流
1.FileInputStream类和FileOutputStream类
public void test01() throws Exception { FileInputStream input = new FileInputStream("f:/a.jpg"); FileOutputStream output = new FileOutputStream("f:/b.jpg"); //获取文件大小,可作为数组长度(大文件慎用) input.available(); byte[] buf = new byte[1024]; int len; while((len = input.read(buf))!=-1) { output.write(buf, 0, len); } output.close(); input.close();}
2.BufferedInputStream类和BufferedOutputStream类
public void test02() throws Exception { FileInputStream i = new FileInputStream("f:/a.jpg"); FileOutputStream o = new FileOutputStream("f:/b.jpg"); BufferedInputStream input = new BufferedInputStream(i); BufferedOutputStream output = new BufferedOutputStream(o,1024*60); byte[] buf = new byte[1024]; int len; while((len = input.read(buf))!=-1) { output.write(buf, 0, len); } output.close(); input.close();}
四.总结
.
五.应用
- 将base64编码字符串保存成文件
/** * 根据base64编码将文件保存到服务器 * @param base64 base64编码字符串 * @param filePath 服务器绝对路径 * @param fileName 文件名 */public static void base64UpFile(String base64, String filePath, String fileName) { FileOutputStream out = null; byte[] buffer; try { //获取文件对象 File file = new File(filePath, fileName); //判断文件是否存在,不存在则创建 if (!file.exists()) { if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } file.createNewFile(); } //获取输出流 out = new FileOutputStream(file); //将64base编码转成数组 buffer = new BASE64Decoder().decodeBuffer(base64); //写入文件 out.write(buffer); } catch (Exception e) { e.printStackTrace(); } finally { //关闭输出流 try { out.close(); } catch (IOException e) { e.printStackTrace(); } } }
阅读全文
0 0
- JAVA【IO一】IO流
- Java-IO-java的IO流
- java IO 流
- JAVA之IO流
- java IO(字符流)
- java的io流
- JAVA之IO流(
- JAVA 基础IO流
- JAVA 中的IO流
- Java IO 流学习
- JAVA 中的IO流
- Java IO流操作方法。。
- java io流总结
- 转]JAVA IO流
- JAVA IO流
- Java中的IO流
- JAVA IO 流操作
- 详述JAVA IO流
- 故障公告:docker swarm集群“群龙无首”造成部分站点无法访问
- 球钟问题
- Eclipse配置Maven
- 第二篇:JAVA集合之LinkedList源码剖析
- Can you make a water problem?
- Java IO流
- epoch 含义
- 对package.json的理解和学习
- 利用xocdebuild打包
- 七牛-Pili Streaming Cloud Server-Side Library For PHP
- 农民伯伯
- php 获取当前目录和当前文件夹
- PHP中加运算
- strcpy和memcpy的区别