java字节流字符流以及高效缓冲流的使用

来源:互联网 发布:人品差的演员知乎 编辑:程序博客网 时间:2024/06/16 01:17

字节流一般用于传输视频文件等,字符流一般用于传输文本类型的文件。

Java的字节流
InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。
Java的字符流
Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先。
结合开始所说的输入/输出流 ,出现了个一小框架。       

              字节流                         字符流
输入流        InputStream               Reader
输出流        OutputStream            Writer


注:文中separator是为了区分是Windows还是Unix下的系统分隔符(,/);
使用案例:

创建新文件

import java.io.*;class hello{public static void main(String[] args) {File f=new File("D:hello.txt");try{f.createNewFile();}catch (Exception e) {e.printStackTrace();}}}
【案例2】File类的两个常量

import java.io.*;class hello{public static void main(String[] args) {System.out.println(File.separator);System.out.println(File.pathSeparator);}}
案例:删除一个文件

/*** 删除一个文件* */import java.io.*;class hello{public static void main(String[] args) {String fileName="D:"+File.separator+"hello.txt";File f=new File(fileName);if(f.exists()){f.delete();}else{System.out.println("文件不存在");}}}
案例:创建一个文件夹

/*** 创建一个文件夹* */import java.io.*;class hello{public static void main(String[] args) {String fileName="D:"+File.separator+"hello";File f=new File(fileName);f.mkdir();}}
案例:判断一个指定的路径是否为目录

/*** 使用isDirectory判断一个指定的路径是否为目录* */import java.io.*;class hello{public static void main(String[] args) {String fileName="D:"+File.separator;File f=new File(fileName);if(f.isDirectory()){System.out.println("YES");}else{System.out.println("NO");}}}

字节流

案例:【向文件中写入字符串】

/*** 字节流* 向文件中写入字符串* */import java.io.*;class hello{public static void main(String[] args) throws IOException {String fileName="D:"+File.separator+"hello.txt";File f=new File(fileName);OutputStream out =new FileOutputStream(f);String str="你好";byte[] b=str.getBytes();out.write(b);out.close();}}


Android流输出

public class StreamTools {    /**     * 将输入流转换成字符串     *      * @param is     *            从网络获取的输入流     * @return     */    public static String streamToString(InputStream is) {        try {             //ByteArrayOutputStream 需要一个Byte数组做为缓冲            ByteArrayOutputStream baos = new ByteArrayOutputStream();            byte[] buffer = new byte[1024];            int len = 0;            while ((len = is.read(buffer)) != -1) {                baos.write(buffer, 0, len);            }            baos.close();            is.close();            byte[] byteArray = baos.toByteArray();            return new String(byteArray);        } catch (Exception e) {            Log.e(tag, e.toString());            return null;        }    }}





0 0
原创粉丝点击