字节流与字符流(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的文本文件。打开这个文本文件,会看到刚刚输入的那段话。
字节流与字符流(FileInputStream类和FileOutputStream类)的更多相关文章
- JAVA IO分析一:File类、字节流、字符流、字节字符转换流
		
因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路:IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题. 一.File类 在讲解File ...
 - IO流(File类,IO流的分类,字节流和字符流,转换流,缓冲流,对象序列化)
		
1.File类 File类可以在程序中 操作文件和目录.File类是通过建立File类对象,在调用File类的对象来进行相关操作的. 示例: public class Demo01 { public ...
 - 关于Java的File类、字节流和字符流
		
一.File类: 在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常. File中还 ...
 - 牛客网Java刷题知识点之输入流、输出流、字节流、字符流、字节流的抽象基类(InputStream、OutputStream)、字符流的抽象基类(Reader、Writer)、FileWriter、FileReader
		
不多说,直接上干货! IO流用来处理设备之间的数据传输. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. IO流按操作数据分为两种:字节流和字符流. IO流按流向分为:输 ...
 - JavaSE学习笔记(14)---File类和IO流(字节流和字符流)
		
JavaSE学习笔记(14)---File类和IO流(字节流和字符流) File类 概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 构造方 ...
 - 01 语言基础+高级:1-8 File类与IO流_day09【字节流、字符流】
		
day09[字节流.字符流] 主要内容 IO流 字节流 字符流 异常处理 Properties 教学目标 能够说出IO流的分类和功能 能够使用字节输出流写出数据到文件 能够使用字节输入流读取数据到程序 ...
 - java-I/O File类(5)-Reader和Writer、OutputStreamWriter 、BufferedWriter、字节流和字符流的区别
		
标签: outputstreamwriterreader字符file方法 2015-05-14 23:06 469人阅读 评论(0) 收藏 举报 分类: 孙鑫-java基础(16) I-O(4 ...
 - java IO输入输出流中的各种字节流,字符流类
		
字节流字节流主要是操作byte类型数据,也byte数组为准,主要操作类就是·字节输出流:OutputStream·字节输入流:InputStream字符流在程序中一个字符等于2个字节,那么java提供 ...
 - 字节流和字符流(InputStream类和OutputStream类)
		
java流包括字节流和字符流,字节流通过I/O设备以字节数据的方式读入,而字符流则是通过字节流读入数据转换成字符"流"的形式由用户驱使. InputStream是所有字节输入流的父 ...
 
随机推荐
- Android 定位地理坐标体系
			
参考: 中国特色 火星坐标 iOS 火星坐标相关整理及解决方案汇总 百度地图坐标转换API 地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02)百度坐标系 (BD-09) 的转换算法 火星坐标 ...
 - 解决clang: error: no such file or directory: such file or directory:的问题
			
一,详细问题描述 clang: error: no such file or directory: 'xxx/src/GGBaCollectionViewCell.m' clang: error: n ...
 - SDL2.0学习
			
http://www.ffmpeg.org/download.html http://doc.okbase.net/leixiaohua1020/archive/110977.html //视频 h ...
 - iOS定时器
			
主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMethod进行倒计时的一些操作,完成时把 ...
 - QQ 微信 新浪  无法 分享 收集
			
1.网络请求报错.升级Xcode 7.0发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Secur ...
 - Jquery_jquery中attr和prop的区别
			
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: ...
 - Eclipse 使用maven创建Dynamic Web Project
			
今天看到spring的官网首页已经没有下载连接了,建议使用maven构建spring项目.虽然maven已经不是新技术,但是这个我还没用过,谷歌走起! 通常创建项目都是用Eclipse,前几年还是My ...
 - ORACLE 查看锁
			
SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s W ...
 - 基于 Node.js 平台,快速、开放、极简的 web 开发框架。
			
资料地址:http://www.expressjs.com.cn/ Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架. $ npm install express -- ...
 - JAVA生成带Logo的二维码
			
1.下载生成二维码所需要的jar包qrcode.jar: 2.直接上生成二维码的java代码 //需要导入的包 import java.awt.Color;import java.awt.Graphi ...