字节流与字符流(FileInputStream类和FileOutputStream类)
FileInputStream类和FileOutputStream类中,第一个类的源端和第二个类的目的端都是磁盘文件,它们的构造方法允许通过文件的路径名来构造相应的流。例如:
FileInputSteam infile=new FileInputStream("myfile.dat");
FileOutputStream outfile=new FileOutputStream("results.dat");
构造FileOutputStream对象时,对应的文件必须存在并且可读的,而构造FileOutputStream对象时,如输出文件已存在,则必须是可覆盖的。
1:FileOutputStream 类
如果用户的文件读取需求比较简单,那么用户可以使用FileInputStream类,该类是从InputStream类中派生出来的简单的输入类,该类的所有方法都是从InputStream类继承来的,使用文件输入流读取文件。
示例代码如下:
importjava.io.FileInputStream;
importjava.io.IOException;
public class ReadFileDemo {
public static void main(String []args){
try{
//创建文件的输入流对象
FileInputStream in=new FileInputStream("TestFile.txt");
Int n=512;//设定读取的字节数
Byte buffer[]=new byte[n];//读取输入流
//读取n个字节,放置到以下标0开始字节数组bffer中,返回值实际读取的字节的数量
while((in.read(buffer,0,n)!=-1)&&(n>0)){
System.out.print(new String(buffer));
}
System.out.println();
in.close();//关闭流
}
catch(IOExceptionioe){
System.out.println(ioe);
}
catch(Exceptione){
System.out.println(e);
}
}
}
本例以FileInputStream的read(buffer)方法,每次从源文件TestFile.txt中读取512B,存储在缓冲区buffer中,再将以buffer中的值构造的字符串newString(buffer)显示在屏幕上。使用文件输入流构造器建立通往文件的输入流时,可能会出现错误(也被称为异常,如要打开的文件可能不存在)。当出现I/O错误时,java生成一个出错信号,它使用一个IOException对象来表示这个出错信号。程序必须使用一个try-catch块检测并处理这个异常。
2:FileOutputStream类
FileOutputStream提供了基本文件写入能力。除了从OutputStream类继承来的方法外,FileOutputStream类还有以下两个构造器:
FileOutputStream(Stringname).
FileOutputStream(Filefile).
第一个构造器使用给定的文件名name创建一个FileOutputStream对象。第二个构造器使用File创建FileOutputStream对象。该类可以使用write方法把字节发送给输出流。使用文件输出写入文件。
示例代码如下:
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteFileDemo {
try{
System.out.print("文件要输入的内容");
Int count,n=512;
byte[ ] buffer=new byte[n];//定义存放读入信息的字节数组
count=System.in.read(buffer);//读取标准输入流
//创建文件输出流对象
FileOutputStream os=new FileOutputStream("WriteFile.txt");
//把字节数组buffer中的下标0开始,长度为count的字节写入流中
os.writer(buffer,0,count);
os.close();
System.out.println("已保存到WriterFile.txt!");
}
catch(IOExceptionioe){ //捕获IOExpection异常
System.out.println("ioe"); //输出异常信息
}
catch(Exceptione){
System.out.println(e);
}
}
}
用System.in.read(buffer)从键盘输入一行字符,存储在缓冲区中的buffer中,再以FileOutputStream的write(buffer)方法,将buffer中的内容写到文件WriteFile.txt中。这个程序中使用”System.on.read(buffer);“语句时,程序会暂停,等待用户输入内容。用户输入的内容会保存在字节数组buffer中,并返回读入的内容的长度保存到变量count中。因为对文件的读/写有可能发生I/O异常,所以在程序中要处理IOException异常,编译并运行此程序,在同一目录下会提示输入要保存文件的内容。输入一段话,按回车键确认,这时会在目录中生成一个名叫WriterFile.txt的文本文件。打开这个文本文件,会看到刚刚输入的那段话。
转载于:https://www.cnblogs.com/Angella/p/6068558.html
字节流与字符流(FileInputStream类和FileOutputStream类)相关推荐
- Java文件字节流和字符流FileInputStream,FileOutputStream,FileReader,FileWriter
一,文件输入流和文件输出流:FileInputStream,FileOutputStream FileInputStream可以使用read()方法一次读入一个字节,并以int类型返回,或者是使用re ...
- 字节流转化为文件流_JAVA IO分析一:File类、字节流、字符流、字节字符转换流...
因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路:IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题. 一.File类 在讲解File ...
- 一文读懂Java中File类、字节流、字符流、转换流
一文读懂Java中File类.字节流.字符流.转换流 第一章 递归:File类: 1.1:概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. ...
- IO流 输入流、输出流、字节流、字符流、转换流、及Properties类
IO流 1.IO概述 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白编了.当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那么数据都是在哪些设备 ...
- fileoutputstream 字节乱码_吃透Java IO:字节流、字符流、缓冲流
前言 有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身 ...
- JAVA File类、IO流体验与简介(字节流、字符流、序列流、打印流、编码、递归)
1. File类 1.1. File类说明 存储在变量,数组和对象中的数据是暂时的,当程序终止时他们就会丢失.为了能够永 久的保存程序中创建的数据,需要将他们存储到硬盘或光盘的文件中.这些文件可以移动 ...
- Java学习总结:42(字节流和字符流)
字节流与字符流 上一节我们学习了文件操作类File,但是File类虽然可以操作文件,但是却不能操作文件的内容.如果要进行文件内容的操作,就必须依靠流的概念来完成.流在实际中分为输入流和输出流两种,输入 ...
- Java IO 字节流与字符流 (三)
概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...
- 字节流和字符流复制文件内容实例
字节流和字符流复制文件内容实例 字节流: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS ...
最新文章
- LIVE 预告 | 旷视王剑锋:全卷积网络,可以实现更好的端到端目标检测吗?
- finereport 登录界面的代码文件_Confluence 6 自定义登录界面
- 15个JavaScript 编码小技巧
- 深度学习之卷积神经网络(4)LeNet-5实战
- 数据库系统原理(第四章:SQL与关系数据库基本操作 )
- c语言金箍棒答案,《西游记》阅读测试题(带答案)
- 几个国内外远程工作平台
- 洛谷 P5091 【模板】欧拉定理
- 消息中间件→产生原因、JMS与AMQP、主流消息中间件、基本概念、ActiveMQ、集群、实际场景问题解决方案、集成rabbitMQ与kafka
- 祝贺自己的软件《万能数据库查询分析器》在中关村在线下载量超过10万次
- C++ VS编译问题--VS下生成DLL,但没有生成Lib的解决办法
- python接入支付宝 40004 invalid-signature 错误原因: 验签出错
- html图片闪烁设置,HTMLCSS基础-图片按钮闪烁解决方案
- mysql网游单机架设_网游单机架设直观教程终结版.doc
- 现代计算机图形学笔记(六)——布林-冯反射模型、图形管线、纹理映射
- maple 求特征值
- [java8] Stream流
- android 系统自带的软件可以删除列表--Defy
- Lightoj 1258
- 【ROS基础】map、odom、base_link、laser 的理解 及其 tf 树的理解