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 ...
随机推荐
- 从一个prismWpfMVVM的例子中学到的
整个程序如下,从博客园一个作者看到的例子,但是对这个例子做了点修改.我觉得这个更符合MVVM模式.这个用到了prism框架,在项目中要引用Microsoft.Practices.Prism.dll 按 ...
- springboot2 +thymeleaf
springboot 1.5. 9+ thymeleaf <!--sidebar--> <nav class="col-md-2 d-none d-md-block bg- ...
- C++对C的扩展、增强
C++对C的扩展 1. 双冒号::作用域运算符 代码中对同一个变量多次声明,在代码块中使用时,局部变量会将全局变量隐藏.若在代码块使用变量前添加::,表示为全局变量. ::表示作用域运算符,如常见的s ...
- HDU4004 二分答案
第一道二分答案...今天看了大牛的博客,突然发现有个叫“二分枚举答案”的方法好像很牛,于是便搜了些资料..发现并不是很难,可能是我了解的只是冰山一脚罢了...加油ACMer!!!! #include& ...
- CDA考试 ▏2017 CDA L1备考资源习题详解-统计基础部分
CDA考试 ▏2017 CDA L1备考资源习题详解-统计基础部分 <CDA LEVEL 1描述性分析典型例题讲解> 主讲人:CDA命题组委会 傅老师 ▏2017 CDA L1备考资源习题 ...
- CentOS 6.5 Apache+SVN使用户可以自己修改密码
yum -y install php #安装php mkdir /var/www/svnadmin #建立页面目录 vi /var/www/svnadmin/index.php #创建index.ph ...
- String、StringBuffer和StringBuilder源码解析
1.String 1.1类的定义 public final class String implements java.io.Serializable, Comparable<String> ...
- CString转const char
CString转换成const char 需要考虑一个因素: 你使用是否为unicode 不使用unicode: CString Cstr("aaaaaaa"); co ...
- OpenCV2.4和OpenCV3之间函数的转变
OpenCV3里面没有自带opencv-contrib,需要自己手动安装,也很简单,直接在命令行里面打:pip install opencv-contrib-python 就能安装好了 OpenCV3 ...
- ubuntu 16.04 换源
第一步:备份原来的源文件 cd /etc/apt/ 命令 cp sources.list sources.list.bak 将sources.list备份到sources.list.bak 第二步:替 ...