01 IO流操作- FileInputStream

3/8/2017来源:ASP.NET技巧人气:1857

例1:FileOutputStream

package day01; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; /** * java.io.FileOutputStream * 用于向文件中写出字节的字节输出流。 * 这是一个低级流。 * 满足低级流特点:写出的数据目的地明确(文件中)。 * 真实将数据写入文件中。 * @author Administrator * */ public class FileOutputStreamDemo1 { public static void main(String[] args) throws IOException { /* * FOS创建的第一种模式:覆盖写操作 默认创建出来的FOS就是覆盖写操作。意思是通过该流写出的文件会先将文件中所有已有数据移除,重新写入新内容。 * FOS创建的第二种模式:追加写操作需要在构造方法中添加第二个参数:FileOutputStream(String path,boolean append) * 第二个参数若为true,就是追加写模式,通过该流写出的数据会追加到当前文件末尾 */ FileOutputStream fos = new FileOutputStream( "fos.txt",true ); String str = "我爱北京天安门"; byte[] data = str.getBytes("UTF-8"); fos.write(data); System.out.PRintln("写出完毕"); /* * 流使用完毕后要关闭,来释放资源。 */ fos.close(); } }

例2:FileInputStream

package day01; import java.io.FileInputStream; import java.io.IOException; /** * java.io.FileInputStream * 用于从文件中读取数据的流,同样的是一个低级流。 * @author Administrator * */ public class FileInputStreamDemo1 { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream( "fos.txt" ); byte[] data = new byte[100]; int len = fis.read(data); String str = new String(data,0,len,"UTF-8"); System.out.println(str); fis.close(); } }

运行结果:

我爱北京天安门

例3:用FileInputStream 和FileOutputStream复制MP3.

package day01; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * 使用文件流的形式复制文件 */ public class CopyDemo3 { public static void main(String[] args) throws IOException { FileInputStream fis= new FileInputStream("草原歌曲 - 我要去西藏.mp3"); FileOutputStream fos= new FileOutputStream("草原歌曲 - 我要去西藏cc.mp3"); byte[] buf = new byte[1024*10]; int len = -1; while((len=fis.read(buf))!=-1){ fos.write(buf,0,len); } System.out.println("复制完毕!"); fis.close(); fos.close(); } }