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 ...
随机推荐
- 使用 jQuery 设置 disabled 属性与移除 disabled 属性
表单中readOnly和disabled的区别:Readonly只针对input(text/ password)和textarea有效,而disabled对于所有的表单元素都有效,包括select,r ...
- python基础-三元表达式/列表推导式/生成器表达式
1.三元表达式:如果成立返回if前的内容,如果不成立返回else的内容 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' ...
- 3926: [Zjoi2015]诸神眷顾的幻想乡
传送门 一个广义后缀自动机模板. //Achen #include<algorithm> #include<iostream> #include<cstring> ...
- xml文件节点读取时,selectNodes总是在根节点下查找的问题
参考:https://yq.aliyun.com/articles/39543 SAXReader reader = new SAXReader();Document document = reade ...
- Spring cloud properties与yml配置说明
encrypt说明 名称 默 认 描述 encrypt.fail-on-error true 标记说,如果存在加密或解密错误,进程将失败. encrypt.key 对称密钥.作为一个更强大的替代方案, ...
- StopWatch 监控Java代码运行时间和分析性能
背景 有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间做进 ...
- 2019-10-16-WPF-控件-Content-的内容不显示下划线字符串
title author date CreateTime categories WPF 控件 Content 的内容不显示下划线字符串 lindexi 2019-10-16 09:21:32 +080 ...
- HDFS命名空间管理
- Javascript-循环输出菱形,并可菱形自定义大小
var Cen = 6;//定义菱形中部为第几行(起始值为0) //for循环输出菱形 document.write("<button onclick='xh()'>点我for循 ...
- sql作业启停服务器
IF EXISTS(SELECT * FROM msdb.dbo.sysjobs WHERE name='启用pubs数据库') EXEC msdb.dbo.sp_delete_job @job_na ...