Java基础学习 —— io
/**
解决数据与数据之间的传输问题。
字节流:
输入字节流:
-------| InputStream 所有输入字节流的基类。抽象类。
-----------| FileInputStream 读取文件的输入字节流。
-----------| BufferedInputStream 缓冲输入字符的字节流 该类内部 维护了一个8kb的字节数组。该类出现的目的 是为了提高读取文件数据的效率。 输出字节流:
-------| OutputStream 所有输出字节流的基类。抽象类。
-----------| FileOutputStream 向文件输出数据 的输出字节流。
-----------| BufferedOutputStream 缓冲输出字节流,为了提高写入文件的效率。类内部也是维护了一个8kb的字节数组。 什么情况使用字节流?
字节流都是为了读取到2进制的数据。
读取到的数据 不需要经过编码 解码的情况下, 可以使用字节流 such as: 图片数据 图片数据 不需要变成我们可以读懂的字符流。不需要进过解码
如果读到的数据 需要转换成 我们读的懂的字 那就必须要转换成字符流
字符流=字节流+编码(解码) 字符流:
输入字符流:
-------| Reader 所有输入字符流的基类。抽象类。不可以直接使用
-----------| FileReader 读取文件字符的输入字符流
-----------| BufferedReader 缓冲输入字符流 该类出现的目的 是为了提高读取文件字符的效率。内部是维护了一个8192个长度字符数组。除了提高效率,并且还拓展了功能, 多了个readline()的功能 输出字符流:
-------| Writer 所有输出字符流的基类。抽象类
-----------| FileWriter 向文件输出字符数据的输出字符流。
-----------|BufferedWriter 缓冲输出字符流。为了提高写入文件的效率和拓展了功能newline() 什么时候用到字符流呢?
读取到的字节数据需要被转换成字符数据,这时候我们就使用字符流,如果是读写的都是字符数据这时候我们需要用字符流。 转换流:
-------|InputStreamReader 输入字节流的转换流。可以吧一个输入字节流 转换成输入字符流,(前面字节,后面字符)
-------|OutputStreamReader 输出字节流的转换流 转换流的作用:
1.可以吧对应的字节流转换成字符流使用。
2. */
public class demo1 {
public static void main(String[] args) throws Exception {
testInput();
}
public static void testInput() throws Exception{ //标准输入流,默认读取控制台。用in来读控制台的内容
InputStream in = System.in;
int read = in.read();
System.out.println(read);
}
}
该demo输出的是字节流
abc
97
如果想要将输入内容完整的输出到控制台 那么我们就需要将字节流转换为字符流。
public class demo1 {
public static void main(String[] args) throws Exception {
testInput();
}
public static void testInput() throws Exception{
//标准输入流,默认读取控制台。用in来读控制台的内容
System.out.println("输入:");
InputStream in = System.in;
//int read = in.read();
//将in转换为字符流
InputStreamReader iReader = new InputStreamReader(in);
BufferedReader bReader = new BufferedReader(iReader);
System.out.println("输出:"+bReader.readLine());
}
}public class demo1 {
public static void main(String[] args) throws Exception {
testInput();
}
public static void testInput() throws Exception{
//标准输入流,默认读取控制台。用in来读控制台的内容
System.out.println("输入:");
InputStream in = System.in;
//int read = in.read();
//将in转换为字符流
InputStreamReader iReader = new InputStreamReader(in);
BufferedReader bReader = new BufferedReader(iReader);
System.out.println("输出:"+bReader.readLine());
}
}
输入:
abc
输出:abc
转换流将输出字节流 转换为输出字符流。
public static void testOutput() throws Exception, IOException {
Socket socket = new Socket(InetAddress.getLocalHost(), 9090);
//获取到字节流
OutputStream outputStream = socket.getOutputStream();
//将输出字节流转化为输出字符流。
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
outputStreamWriter.write("ok");
}
转换流的第二个作用
2.读写文件的时候FileReader,FileWriter默认使用的是GBK编码表,不能由自己来指定码表来读写数据。而转换流可以指定码表的读写转换数据。
public static void writeFile() throws IOException{
FileOutputStream fileOutputStream2 = new FileOutputStream("D:\\a.txt");
OutputStreamWriter outputStreamWriter2 = new OutputStreamWriter(fileOutputStream2,"utf-8");
outputStreamWriter2.write("sony是猪");
outputStreamWriter2.close();
}
public static void ReadFile() throws IOException{
FileInputStream fileInputStream = new FileInputStream("D:\\a.txt");
//创建转换流并且创建码表
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
int content = 0;
while((content = inputStreamReader.read())!=-1){
System.out.print((char)content);
}
fileInputStream.close();
}
sony是猪
Java基础学习 —— io的更多相关文章
- Java基础学习-IO流
package IObasics; import java.io.FileWriter; import java.io.IOException; /*IO流 * 通过数据流.序列化和文件系统提供系统输 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- java基础学习总结——开篇
java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
- java基础学习总结——java环境变量配置(转)
只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...
随机推荐
- 【原创】08. easyui form控件,回调参数存在后缀 audio controls="controls" style="display: none;"></audio>
版本: jQuery EasyUI 1.4.3 springmvc 3.2.6 谷歌浏览器,内核版本 chrome 56.0.2924.87 360急速浏览器,内核版本 chrome 50.0.266 ...
- oracle 审计日志清理
--进入审计日志目录: cd $ORACLE_BASE/admin/$ORACLE_SID/adump --删除3个月前的审计文件: find ./ -type f -name "*.a ...
- Linux(6)文件和磁盘管理
文件和磁盘管理 1. 文件管理ls ls : 查看文件信息. 列出目录的内容 -a :显示指定目录下的所有文件, 包括以.开头的隐藏文件 -l :以列表方式显示文件的详细信息 -h :配合-l显示文件 ...
- Word2016“此功能看似已中断 并需要修复”问题解决办法
Word2016"此功能看似已中断 并需要修复"问题解决办法 修复步骤: 1. 按Windows 键+R键,输入"regedit"打开注册表. 2.找到以下键值 ...
- 3.commonjs模块
1.首先建一个math.js exports.add = function(a, b){ return a + b; } exports.sub = function(a, b){ return a ...
- FasfDFS整合Java实现文件上传下载
文章目录 一 : 添加配置文件 二 : 加载配置文件 1. 测试加载配置文件 2. 输出配置文件 三:功能实现 1.初始化连接信 ...
- Node.js原生及Express方法实现注册登录原理
由于本文只是实现其原理,所以没有使用数据库,只是在js里面模拟数据库,当然是种中还是需要用数据库的. 1.node.js原生方法 ①html页面,非常简单,没有一丝美化~我们叫它user.html & ...
- 学习笔记TF035:实现基于LSTM语言模型
神经结构进步.GPU深度学习训练效率突破.RNN,时间序列数据有效,每个神经元通过内部组件保存输入信息. 卷积神经网络,图像分类,无法对视频每帧图像发生事情关联分析,无法利用前帧图像信息.RNN最大特 ...
- Python使用PDFMiner解析PDF
近期在做爬虫时有时会遇到网站只提供pdf的情况,这样就不能使用scrapy直接抓取页面内容了,只能通过解析PDF的方式处理,目前的解决方案大致只有pyPDF和PDFMiner.因为据说PDFMiner ...
- Oracle插入多个值的问题
首先我们建立表T123 SQL),age int); 然后试图向表中像DB2一样插入多个value,却得到了错误的信息. SQL),(); ),() * ERROR at line : ORA: SQ ...