字节流
来源:互联网 发布:android 仿淘宝分类 编辑:程序博客网 时间:2024/05/16 05:52
一、FileInputStream字节输入流,读取文件内容。
例:
package io.pinttai;import java.io.File;import java.io.FileInputStream;import java.io.IOException;public class MyInputStream {public static void main(String[] args) {String name="F:"+File.separator+"test.txt";System.out.println(readStrFormFile(name));}public static String readStrFormFile(String fileName) {try { FileInputStream fis=new FileInputStream(fileName); byte[] bytes; bytes = new byte[fis.available()]; fis.read(bytes); String content=new String(bytes); fis.close(); return content; } catch (IOException e) { e.printStackTrace(); }return null;}}
读的技巧:
读取部分字节 fis.read(bytes,off,len),其中off为起点,len为读取长度。也可以fis.skip(long n)从输入流中跳过并丢弃n个字节的数据,再fis.read(bytes,0,7)来读取。
注意,这里如果是读取中文,UTF-8 的中文占3个字节,而gbk和UTF16的中文占2个字节。
二、FileOutputStream,字节输出流,写入。
例:
package io.pinttai;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;public class MyOutputStream {public static void main(String[] args) throws IOException {String fileName="F:"+File.separator+"test.txt";String content="my name is:\r\n"+"hello";setFile(fileName, content);}public static void setFile(String fileName,String content) throws IOException{FileOutputStream fileOutputStream=new FileOutputStream(fileName);fileOutputStream.write(content.getBytes());fileOutputStream.close();}}
如果是追加内容,FileOutputStream fileOutputStream=new FileOutputStream(fileName,true);即可。
写的技巧:
将指定byte数组从偏移量off开始的len个字节写入此输出流write(byte[],inf off,int len);
void flush();//刷新此输出流,并强制将所有已缓冲的输出字节写入该流中;
\r\n是换行写入。
三、缓冲式的字节输入输出流:BufferedInputStream和BufferedOutputStream,方法同上。只不过引入了缓冲区,效率更高。
阅读全文
0 0