JAVA基础——IO流字节流
在Java中把不同的输入输出源(键盘、文件、网路连接)抽象表述为“流”。
1.输入流、输出流
.字节输入流通过FileInputStream和来操作
字节输出流通过FileOutputStream来操作
2.字节流、字符流
字节流通过InputStream和OutputStream来操作,数据单元是8位的字节
字符流通过Reader和Writer来操作,数据单元是16位的字符
3.节点流、处理流
处理流可以包装节点流进行数据传输,通过处理流,Java程序无需理会输入输出节点是磁盘、网络还是其他输入输出设备,程序只要将节点包装成处理流,就可以使用相同的输入、输出代码来读不通的输入输出设备的数据。
文件字节输出(写)
方法一:
public class 文件输入输出流 {
public static void main(String[] args) throws Exception {
//1、确定目标文件
File file = new File("D:\\ccc.txt");
FileOutputStream fos = null;
//2、获取流
try {
fos = new FileOutputStream(file,true);
//3、获取目标数据
String str = "hello world!!!";
//4、通过流提供的一些列方法 将目标数据 写入目标文件
fos.write(str.getBytes());
int num = 1/0;//除0异常
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//finally无论是否发生异常 finally中的代码 都会执行
//5、关闭流
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*方法二:
*/
//1、确定目标文件
File file = new File("D:\\ccc.txt");
//2、确定流
FileOutputStream fos = new FileOutputStream(file);
//3、确定数据
fos.write(97);
//4、关闭流
fos.close();
/**
*方法三:
*/
//1、确定目标文件
File file = new File("D:\\ccc.txt");
//2、确定流
FileOutputStream fos = new FileOutputStream(file);
//3、确定数据
String str = "hello world!!!";
//4、写入文件
// /*参数一:目标数组
// * 参数二:从哪里开始写
// * 参数三:一共写入多少个
// * write(b, off, len);
// */
fos.write(str.getBytes(), 2, 5);
//5、关闭流
fos.close();
从文件中将数据读取出来
方法一:
public class 文件输入输出流 { public static void main(String[] args) throws Exception {
//1、确定目标文件
File file = new File("D:\\ccc.txt");
//2、获取流对象
try {
FileInputStream fis = new FileInputStream(file);
//3、读取数据
byte[] b = new byte[1024];//用于接受数据
fis.read(b);
//4、打印数据
// /**
// * 参数一:目标构造数组
// * 参数二:从哪里开始构造
// * 参数三:构造的长度
// * String(byte[] bytes, int offset, int length)
// * */
System.out.println(new String(b,0,(int)file.length()));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**
* 方法二:
*/
//1、确定目标文件
File file = new File("D:\\ccc.txt");
//2、确定流
FileInputStream fis = new FileInputStream(file);
//3、开始读
byte[] b = new byte[1024];
fis.read(b, 0, 3);
//4、关闭流
fis.close();
System.out.println(new String(b));
/**
* 方法三:
*/
//1、确定目标文件
File file = new File("D:\\ccc.txt");
//2、确定流
FileInputStream fis = new FileInputStream(file);
//3、开始读数据
/*
* 注意:之前的读取方法 我们都是将数据 直接读到一个byte数组中
* read():从文件中一个一个的读出来
* 如果有数据 读出来的是 ,每个字母对应的ascll码值
* 如果读到最后 返回-1
* 利用循环读出
*/
StringBuffer sb = new StringBuffer();//用于拼接
int temp = 0;//用于临时存储每个字节
while((temp = fis.read())!= -1){
sb.append((char)temp);
}
//4、关闭流
fis.close();
System.out.println(sb.toString());
JAVA基础——IO流字节流的更多相关文章
- Java基础-IO流对象之字节流(Stream)
Java基础-IO流对象之字节流(Stream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在前面我分享的笔记中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现 ...
- Java基础IO流(二)字节流小案例
JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html ①读取指定文件内容,按照16进制输出到控制台 其中,Integer.to ...
- Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)
Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...
- Java基础-IO流对象之转换流(InputStreamReader与OutoutStreamWriter)
Java基础-IO流对象之转换流(InputStreamReader与OutoutStreamWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.转换流概述 我们之前 ...
- 《Java基础——IO流》
Java基础--IO流 一.字节流: 1.输入流 (InputStream) 规则: 此处用于读取txt文件中的内容. 代码: import java.io.*; public c ...
- Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream)
Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我已经分享过很多的J ...
- Java基础-IO流对象之随机访问文件(RandomAccessFile)
Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对 ...
- Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)
Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存 ...
- Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...
随机推荐
- 【bzoj4196】[Noi2015]软件包管理器
裸的树链剖分. 对于安装 查询和维护到根路径 对于卸载 查询和维护子树信息 一开始线段树add[]标记要全赋值为-1 #include<algorithm> #include<ios ...
- 在js中取选中的radio值
在js中取选中的radio值 <input type="radio" name="address" value="0" /> & ...
- H264 介绍[1]
频编解码技术有两套标准,国际电联(ITU-T)的标准H.261.H.263.H.263+等:还有ISO 的MPEG标准Mpeg1.Mpeg2.Mpeg4等等.H.264/AVC是两大组织集合H.263 ...
- bzoj1047
二维单调队列 rmq很明显会超时,如果这个序列是一维的,很明显就是个单调队列,现在就是把一维的单调队列转换为二维单调队列. 先求出每一列的窗口极值,然后对于每一行做单调队列,值就是之前求出每个位置结尾 ...
- 准确率,精确率,召回率,F-measure 之间的关系
总结:(图上 R的计算的分母应该是 :40+10 )(笔误) 模型条件放宽,负类被误判为正类的可能性就变大(即FP变大)精确率和准确率会受影响(变小) 模型条件变严格,正类有可能被误判为负类(即FN变 ...
- maven中的三种工程,以及在idea中构建父子工程。
1.pom工程:用在父级工程或聚合工程中.用来做jar包的版本控制.主要是定义POM文件,将后续各个子模块公用的jar包等统一提出来,类似一个抽象父类 2.war工程:将会打包成war,发布在服务器上 ...
- HashMap1
一.Java并发基础 当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题. 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1 ...
- 在Linux环境下使用OpenSSL对消息和文件进行加密(转载)
转自:http://netsecurity.51cto.com/art/201301/378513.htm 1.简介 OpenSSL是一款功能强大的加密工具包.我们当中许多人已经在使用OpenSSL, ...
- ionic2.1.0 --beta3版本新建页面做弹框时遇到的问题
新建的页面需要在app.module.ts文件中定义.不然制作页面弹出效果是会报错.
- 为什么要用Go语言做后端
FMZ数字货币量化平台 www.fmz.com, 后端使用Go语言,这里是创始人Zero谈论使用Go语言所带了的便利.原帖地址:https://www.zhihu.com/question/27172 ...