FileIntputStream / FileOutputStream 类
import java.io.FileInputStream;
import java.io.FileNotFoundException; public class FileInputStreamTest { public static void main(String[] args) { try { // 1.创建FileInputStream类 的对象 与指定的文件关联 (相当于管道)
FileInputStream fis = new FileInputStream("E:\\abc.txt"); // 2. 读取文件中的内容 并且打印出来 int res = 0; while((res= fis.read())!=-1) { // 当 (res= fis.read())= -1 时,表示已经读完文件中的字节了 System.out.println("打印出读出的内容(int类型的ASCII码值): "+res);
System.out.println("打印出读出的字节内容(强转成char类型): "+(char)res);
System.out.println();
} // 3.关闭流对象 并释放资源
fis.close(); } catch (Exception e) {
e.printStackTrace();
} } }
打印出读出的内容(int类型的ASCII码值): 97
打印出读出的字节内容(强转成char类型): a 打印出读出的内容(int类型的ASCII码值): 98
打印出读出的字节内容(强转成char类型): b 打印出读出的内容(int类型的ASCII码值): 99
打印出读出的字节内容(强转成char类型): c 打印出读出的内容(int类型的ASCII码值): 100
打印出读出的字节内容(强转成char类型): d
package com.monkey1024; import java.io.FileInputStream;
import java.io.FileNotFoundException; public class FileInputStreamTest { public static void main(String[] args) { try { // 1.创建FileInputStream类 的对象 与指定的文件关联 (相当于管道)
FileInputStream fis = new FileInputStream("E:\\abc.txt"); // 2. 读取文件中的内容 并且打印出来 byte[] data = new byte[10]; //创建一个byte类型的数组 int res = fis.read(data);
System.out.println("实际读取到的数据大小是: "+res+",读取到的文内内容是:"+new String(data, 0, res) +"!");
//String中有个构造方法String(byte[] bytes)
//String(int[] codePoints, int offset, int count)
// 分配一个新的String
,它包含 Unicode 代码点数组参数一个子数组的字符。
// 3.关闭流对象 并释放资源
fis.close(); } catch (Exception e) {
e.printStackTrace();
} } }
实际读取到的数据大小是: 4,读取到的文内内容是:abcd!
import java.io.FileOutputStream; public class FileOutputStreamTest { public static void main(String[] args) {
try { // 1.创建FileOutputStream类的对象,与指定的文件关联
// 若文件不存在,则 自动创建新的空文件
// 若文件存在, 则 清空文件中的原有内容 FileOutputStream fos = new FileOutputStream("e:/hello.txt"); // 2. 使用write()可以向文件中 写入数据
fos.write(97); // a
fos.write(98); // b
fos.write(99); // c
fos.write("hello".getBytes()); // 转换成字符数组
System.out.println("数据写入成功....."); // 3.关闭流操作
fos.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
} }
}
结果:
数据写入成功.....
注意:
// FileOutputStream fos = new FileOutputStream("e:/hello.txt",true);
在后面加 true,这样写的意思:
-若文件存在, 则向文件中追加新的数据内容;
-若文件不存在,则自动创建新的空文件
package com.monkey1024; import java.io.FileInputStream;
import java.io.FileOutputStream; public class FileCopyTest { public static void main(String[] args) { try {
// 1.创建FileInputStream类的对象,指向源文件 (读文件)
FileInputStream fis = new FileInputStream("E:\\reader.txt"); // 2.创建FileOutputStream类的对象,指向目标文件 (写文件) FileOutputStream fos = new FileOutputStream("E:\\readerCopy.txt"); // 3.读一个字节,写一个字节
// 不断地读取源文件中的内容 并且 写入到 目标文件中
// 这样可以实现文件的拷贝,但是 文件比较大的时候,效率低下
int res = 0;
while((res =fis.read())!= -1) {
fos.write(res);//写 } // 4.关闭流操作
fis.close();
fos.close();
System.out.println("拷贝完毕"); } catch (Exception e) {
e.printStackTrace();
} } }
拷贝完毕
package com.monkey1024; import java.io.FileInputStream;
import java.io.FileOutputStream; public class FileCopyTest { public static void main(String[] args) { try {
// 1.创建FileInputStream类的对象,指向源文件 (读文件)
FileInputStream fis = new FileInputStream("E:\\reader.txt"); // 2.创建FileOutputStream类的对象,指向目标文件 (写文件) FileOutputStream fos = new FileOutputStream("E:\\readerCopy.txt"); // 3.无论文件大小是多少,每次都准备一个1024整数倍的数组
// 这样做,效率高太多
byte[] data = new byte[1024*8]; int res = 0;
while((res = fis.read(data)) != -1){
fos.write(data,0,res);
} // 4.关闭流操作
fis.close();
fos.close();
System.out.println("拷贝完毕"); } catch (Exception e) {
e.printStackTrace();
} } }
拷贝完毕
FileIntputStream / FileOutputStream 类的更多相关文章
- java-io-FileInputStream与FileOutputStream类
本文转载这里FileInputStream和FileOutputStream类需要注意的问题: 1.FileInputStream和FileOutputStream类分别用来创建磁盘文件的输入流和输 ...
- 字节流与字符流(FileInputStream类和FileOutputStream类)
FileInputStream类和FileOutputStream类中,第一个类的源端和第二个类的目的端都是磁盘文件,它们的构造方法允许通过文件的路径名来构造相应的流.例如: FileInputSte ...
- FileInputStream类与FileOutputStream类
FileInputStream类是InputStream类的子类.他实现了文件的读取,是文件字节输入流.该类适用于比较简单的文件读取,其所有方法都是从InputStream类继承并重写的.创建文件字节 ...
- FileInputStream与FileOutputStream类 Reader类和Writer类 解析
FileInputStream和FileOutputStream类分别用来创建磁盘文件的输入流和输出流对象,通过它们的构造函数来指定文件路径和文件名. 创建FileInputStream实例对象时,指 ...
- FileInputStream与FileOutputStream类
FileInputStream和FileOutputStream类分别用来创建磁盘文件的输入流和输出流对象,通过它们的构造函数来指定文件路径和文件名. 创建FileInputStream实例对象时,指 ...
- 字节流, FileOutputStream类,FileInputStream类,复制文件,字符流
字节输出流OutputStream OutputStream此抽象类,是表示输出字节流的所有类的超类.操作的数据都是字节 基本方法: 子类可继承调用以上方法 FileOutputStream类 构造方 ...
- 一切皆为字节和字节输出流_OutputStream类&FileOutputStream类介绍
一切皆为字节 一切文件数据(文本.图片.视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此.所以,字节流可以传输任意文件数据.在操作流的时候,我们要时刻明确,无论使用什 ...
- IO概述(概念&分类)和字节输入流+OUTputStream类&FileOutPutStream类介绍
IO概述 什么是IO 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了保存,可能文件就白白编辑了.当你的电脑上插入一个U盘,可以吧一个视频,拷贝到你的电脑硬盘里,那么数据都是在哪些设备上的 ...
- java.io.FileOutputStream类的5个构造方法
java.io.FileOutputStream的构造函数: ①FileOutputStream(File file) ②FileOutputStream(String name) ③FileOutp ...
随机推荐
- ssm项目 maven 项目pon.xml 配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- myeclipse工程更新后java图标变为空心的解决办法
今天用svn更新了工程发现目录结构改变了,同时所有的java文件的图标变成了空心的.解决办法如下 1.右键单击工程目录名,选择properties. 2.选择java bulid path,正常的应该 ...
- Js中获取时间 new date()的用法
Js中获取时间 new date()的用法 获取时间: var myDate = new Date();//获取系统当前时间 myDate.getYear(); //获取当前年份(2位) myDate ...
- Store工作原理
- Diff- Linux必学的60个命令
1.作用 diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户. 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所有文件当作 ...
- MapReduce 图解流程超详细解答(2)-【map阶段】
接上一篇讲解:http://blog.csdn.net/mrcharles/article/details/50465626 map任务:溢写阶段 正如我们在执行阶段看到的一样,map会使用Mappe ...
- 【心无旁骛】vuex-simple
这个算是一个小的demo嘛,先放上开源github地址:https://github.com/sascha245/vuex-simple 倒是可以先看下效果 呃呃,因为这个项目所在的目录与平时我们一般 ...
- PostgreSQL 优化器代码概览
简介 PostgreSQL 的开发源自上世纪80年代,它最初是 Michael Stonebraker 等人在美国国防部支持下创建的POSTGRE项目.上世纪末,Andrew Yu 等人在它上面搭建了 ...
- vue.js_12_vue的watch和computed
1.watch用来监测指定Vue实例上的数据变动. watch主要用于监控vue实例的变化,它监控的变量当然必须在data里面声明才可以,它可以监控一个变量,也可以是一个对象. 1.>使用wat ...
- skyline中遍历fly工程树
在skyline二次开发过程中,做空间分析总是要去读取工程中的shp图层.假设想获取工程树中“建筑物”图层,图层结构如下: 传统的方法是: var itemId=SGWorld.ProjectTree ...