好贷网好贷款

FileInputStream 和 FileOutputStream

发布时间:2016-12-5 10:32:25 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"FileInputStream 和 FileOutputStream",主要涉及到FileInputStream 和 FileOutputStream方面的内容,对于FileInputStream 和 FileOutputStream感兴趣的同学可以参考一下。

FileInputStream 是从文件系统当中的某个文件中获取输入字节,获得的是原始字节流,如果想要获得字符流,需要使用FileReader。 FileOutputStream是将数据写入文件的输出流。 FileWriter  buffer.length String.length()   下面给出程序实例,实现以字节流方式读取文件。 import java.io.FileInputStream; import java.io.File; import java.io.IOException; /* *原始程序在读取数字的时候会将第一个数字丢失 while(fs.read()!=-1) 这里已经读取了 *还有就是当数据字节数不够9字节的时候,如果不进行处理的话会出现错误的输出结果 *b.length fs.read(b) 返回的是读入输入流的字节数 如果没有读入数据就返回-1 *如果是fs.read()的话就是一个一个自己的读取了 *通过System.out.println(fs.read());可以获取第一个字节的数据 */ public class FileInputStreamDemo { public static void main(String[] args) throws IOException { File f = new File("f:/work/file0.txt"); FileInputStream fs = new FileInputStream(f); byte [] b = new byte[9]; //while(fs.read()!=-1) 是这句话将第一个字符吞掉了 int length =0; while((length=fs.read(b))!=-1)//这样才行 { //System.out.println(new String(b,"gb2312")); String str = new String(b,0,length); System.out.println(str); } } }   read只会读取一个字节 不会自动读取下一个 只会读第一个字节 和指针不是一回事 如果想用字节流读完文件 一般用一个字节数组的缓冲区 比如200 byte[] buffer = new byte[200];//创建字节数组              int length = 0;              while(-1 != (length = is.read(buffer, 0, buffer.length))){           String str = new String(buffer,0,length);            System.out.println(str);         } 评论(1)|已赞1 如果使用read()方法的话,就要循环不停的读取,但是循环的终止条件呢? FileInputStream 的构造方法  FileInputStream(File file) FileInputStream(String fileAddress) int available()  该方法返回可以不受阻塞地从此文件输入流中读取的字节数 int  read() 该方法从输入流中读取第一个数据字节,返回int类型的数据 FileInputStream  fs = new FileInputStream(“f:work/file0.txt”); System.out.println(fs.read());  //显示第一个字节 int read(byte [] b) 从输入流中最多将b.length个字节的数据读入一个字节数组, int  read(byte[] b,int off,int len) 从输入流中的第off个索引的位置读取最多len个字节的数据放入到一个字节数组当中。 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class FileOutputStreamDemo { public static void main(String[] args) throws IOException{ //创建File对象 File f = new File("f:/work/file.txt"); //创建输出字节流 FileOutputStream fo = new FileOutputStream(f); //创建字节数组 byte buffer[]=new byte [10]; buffer[0]=48; buffer[1]=49; buffer[2]=50; buffer[3]=51; buffer[4]=52; buffer[5]=53; buffer[6]=54; buffer[7]=55; buffer[8]=56; buffer[9]=57; //初始化字节数组 fo.write(buffer); //写入文件 //System.out.println(buffer); System.out.println(new String(buffer,"gb2312")); System.out.println(new String(buffer,"gb2312")); String b = new String(buffer,0,buffer.length); System.out.println(b); } }   void write(byte[] b) 该方法将b.length个字节从指定字节数组写入到此文件输出流当中,无返回值,如下语句将字节数组写入到磁盘文件当中。 File  file = new File(“f:\\work\file.txt”); FileOurputStream f = new FIleOutputStream(f); byte[] b = new byte[10]; f.write(b); void  write(byte[] b, int off,int len) void  write(int b) 将指定字节的数据写入到此文件输出流当中,b为字节对应的编码  如下语句将会输出数字1 到磁盘文件: File f = new File(“f:\\work\file.txt”); FileOurputStream f = new FIleOutputStream(f); f.write(49);   昨天遇到的关于FileInputStream.read()  方法是直接读取一个字节而返回一个整型,事实上来说昨天看错了,是返回这个字节的编码 然后利用FileOutputStream.write(int b) 方法将数据写入输出流就行了。

上一篇:Hibernate映射解析——七种映射关系(转来备忘)
下一篇:hadoop学习过程-2013.08.30.2--初次使用IKAnalyzer来切词--切词试验

相关文章

相关评论