FileInputStream 和 FileOutputStream
来源:互联网 发布:excel2003删除重复数据 编辑:程序博客网 时间:2024/05/16 00:36
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)
方法将数据写入输出流就行了。
- FileInputStream和FileOutputStream
- IO:FileInputStream和FileOutputStream
- FileInputStream和FileOutputStream类
- FileInputStream 和FileOutputStream
- FileInputStream 和 FileOutputStream
- FileOutputStream和FileInputStream
- FileInputStream和FileOutputStream解惑
- FileOutputStream 和 FileInputStream
- FileInputStream和FileOutputStream使用
- Java FileInputStream和FileOutputStream
- FileInputStream和FileOutputStream
- FileInputStream和FileOutputStream
- Java FileInputStream 和 FileOutputStream
- FileInputStream和FileOutputStream应用
- FileOutputStream和FileInputStream
- FileOutputStream、FileInputStream和BufferedOutputStream、FileInputStream 应用
- FileInputStream和FileOutputStream应用实例
- FileOutputStream和FileInputStream存取字符串
- InputStream 和 OutputStream
- Visual Studio 的Build Event 使用
- VS2012 下载地址
- Hibernate映射解析——七种映射关系(转来备忘)
- android音频通信
- FileInputStream 和 FileOutputStream
- 处理 url类
- asic码对照表
- 读写锁(Read-Write Lock)的一种实现
- ucgui的menu的改进
- 丢包了
- (Android 开源项目 android pn) 整合androidpn与SSH
- Ubuntu Server下Nagios可视化绘制工具PNP安装与配置
- java调用存储过程抛出的错误--具体到行