标签:
实例01: 需求:向文件中写入字符串 //public byte[] getBytes():使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中; package cn.itcast03; /* * 将一个字节数据写入数据流: * public abstract void write( int b)throws IOException * 将一个byte数组写入数据流: * public void write(byte[] b)throws IOException * 将一个指定范围的byte数组写入数据流: * public void write(byte[] b, int off,int len)throws IOException * 刷新缓存区: * public void flush()throws IOException * 关闭数据流: * public void close()throws IOException */ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class FileOutputStream01 { public static void main(String[] args) throws IOException { //声明File对象 File f = new File("a.txt" ); //通过子类实例化父类对象 OutputStream out = new FileOutputStream(f); //进行写操作 String s = "I love JAVA"; byte[] bytes = s.getBytes(); //将一个byte数组写入数据流: out.write(bytes); //将一个指定范围的byte数组写入数据流: out.write(bytes,1,5); //将一个字节数据写入数据流 out.write( ‘b‘); out.close(); } } 实例02: package cn.itcast03; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; //追加新的内容 //public FileOutputStream(String name,boolean append)throws FileNotFoundException //如果将append的值设置为true,则表示在文件的末尾追加内容; public class FileOutStream03 { public static void main(String[] args) throws IOException { File file = new File("b.txt" ); FileOutputStream fos = new FileOutputStream(file,true ); String s = "Hello World"; byte[] bytes = s.getBytes(); for (int i = 0; i < bytes.length; i++) { fos.write(bytes[i]); } fos.close(); } }
0
到 255
范围内的 int
字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1
实例01: package cn.itcast04; /* * public abstract int read()throws IOException * public int read(byte[] b)throws IOException */ import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class FileInputStreamDemo01 { public static void main(String[] args) throws IOException { /* // File f = new File("G:"+File.separator+"JavaTest"+File.separator+"test01.txt "); File f = new File("a.txt"); FileInputStream fis = new FileInputStream(f); int b; while ((b=fis.read())!=-1) { System.out.println((char)b); } fis.close(); */ System. out.println("==============================================" ); File f = new File("a.txt" ); FileInputStream fis2 = new FileInputStream(f); /* //将所有内容读取到数组中 byte[] bytes =new byte[1024]; //用于记录本次读取字节的个数 fis2.read(bytes); fis2.close(); System.out.println(new String(bytes)); 出现的问题:数组长度是1024,但是读取的数组长度只有17字节,所以会有1007个无用的空间转为字符串; 修正错误如下: */ /* * byte[] bytes = new byte[1024]; int len ; while(( len=fis2.read(bytes))!=-1) { String s = new String(bytes,0, len); System.out.println(s); } fis2.close(); 出现的问题:以上虽然指定了byte数组的范文,但是程序依然开辟了很多的无用的空间,以上的程序没有从根本上解决问题。 解决方法:使用File提供的length()方法来取得文件的大小 */ byte[] bytes = new byte[( int)f.length()]; int len; //如果len的值不是-1,表示文件没有读完; while((len=fis2.read(bytes))!=-1) { String s = new String(bytes,0,len); System. out.println(s); } fis2.close(); } }
JavaIO(03)字节流--FileOutputStream
标签:
原文地址:http://www.cnblogs.com/qlwang/p/5613183.html