美文网首页
Java I/O简述

Java I/O简述

作者: x360 | 来源:发表于2016-08-25 11:01 被阅读38次

Java数据流,有写入写出之分;还有byte数据,和char(文字)数据之分。

基本涵盖所有情况,其他只是使用更简洁的类来操作。

先看看Java基本数据有(总体如下图):

一,引用型(reference):

二,基本型(primitive):

2.1数字型(整型):

byte short int long char,分别用8、16、32、64、16bits表示。

2.2浮点型:

float(32bit),double(64bit)

2.3整型字面值

2、8、16进制的表示分别在最前面加上0B(0b)、0、0X(0x)即可

2.4字符及字符串字面值

\ddd(八进制)、\uxxxx(十六进制Unicode字符)、'(单引号)、"(双引号)、\(反斜杠)\r(回车符)\n(换行符)\f(换页符)\t(制表符)\b(回格符)

屏幕快照 2016-08-25 上午10.43.22.png

/**
* 字符文件,读入内存(读文件)
* 字符文件,读出内存(写到文件中去)
*
* byte[]文件,读入内存(读文件)
* byte[]文件,读出内存(写到文件中去)
*如:png,jpg等文件,的读写

*转化流:InputStreamReader/OutputStreamWriter,把字节转化成字符。
*数据流:DataInputStream,DataOutputStream。
*/

private static voidbyteFile2PureDataFile()throwsIOException {

//步骤一:准备好要读入内存的文件

//情况1:复制纯数据

//File file = new File("/Users/users/Desktop/BugHunt.mp3");

//File file = new File("/Users/users/Desktop/old.png");

//情况2:复制字符等数据

File file =newFile("/Users/users/Desktop/old.txt");



//文件转化为文件流

FileInputStream fileInputStream =newFileInputStream(file);

//情况1:以数据流的形式将数据读入到内存(使用DataInputStream,BUfferedInputStream都可以)

//BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);

//情况2:以字符形式将数据读入到内存(字符,图片在内存中的存储格式的区别)

InputStreamReader inputStreamReader =newInputStreamReader(fileInputStream);



//步骤二:准备好要写出内存的文件

//情况1:复制纯数据

//File fileNew = new File("/Users/users/Desktop/new.mp3");

//File fileNew = new File("/Users/users/Desktop/new.png");

//情况2:复制文字,字符等

File fileNew =newFile("/Users/users/Desktop/new.txt");



//文件转化为文件流

FileOutputStream fileOutputStream =newFileOutputStream(fileNew);

//情况1:以数据形式将数据导出内存(使用DataOutputStream,BUfferedOutputStream都可以)

//BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);

//情况2:以字符形式将数据导出内存,

OutputStreamWriter outputStreamWriter =newOutputStreamWriter(fileOutputStream);



//小勺子

//情况1:以数据形式将数据导出内存

//byte[] cache = new byte[1024];//情况一:拷贝数据:图片,音频等数据的小勺子,就必须使用字节数组

//情况2:复制字符等数据

//char[] cache = new char[1024];//情况二:拷贝字符串的小勺子,就必须使用字符数组



//读到的长度(read()返回的值,可以作为单个字符的内容,也可以在使用cache时作为长度来指示)

//情况1:以数据形式将数据导出内存

//int len = bufferedInputStream.read(cache);

//情况2:复制字符等数据

intcontent =0;//不用cache,字符串为整形数,然后由系统软件等自己去解析,这样肯定会有乱码



//情况一:以数据形式将数据导出内存

//while (len != -1) {

//情况2:复制字符等数据

//while (((content = inputStreamReader.read(cache))!= -1)) {

while(((content = inputStreamReader.read()) != -1)) {

//情况1:以数据形式将数据导出内存

//bufferedOutputStream.write(cache, 0, len);

//情况2:复制字符等数据

//outputStreamWriter.write(cache, 0, content);//用cache

outputStreamWriter.write(content);//不用cache

//情况1:(比较特殊的地方)以数据形式将数据导出内存//byte文件,读取小勺子的长度,这里一定要每次更新长度

//len = bufferedInputStream.read(cache);

}



//最后注意关流的顺序(先关流入内存的数据,再关流出内存的数据)情况1:以数据形式将数据导出内存

//bufferedInputStream.close();

//情况2:复制字符等数据

//inputStreamReader.close();

fileInputStream.close();



//情况1:以数据形式将数据导出内存

//bufferedOutputStream.close();

//情况2:复制字符等数据

outputStreamWriter.close();

fileOutputStream.close();

}

常用I/O流 字节输入流 字节输出流 字符输入流 字符输出流

相关文章

  • Java I/O简述

    Java数据流,有写入写出之分;还有byte数据,和char(文字)数据之分。 基本涵盖所有情况,其他只是使用更简...

  • 线上学习资料汇总_新

    1. Java I/O 这些年一直记不住的 Java I/O 深入分析 Java I/O 的工作机制 NIO 入门...

  • NIO.2-简介

    More New I/O Java 7 中的 More New I/O APIs,通过在 java.nio.cha...

  • Java & Groovy & Scala & Kotlin -

    Overview 文章介绍的 I/O 主要用于本地文件读写,不涉及网络 I/O。 Java 篇 Java 中的 I...

  • I/O

    Java I/O 总结 理解Java中字符流与字节流的区别 深入学习 Java 序列化 Java I/O 操作及优...

  • 知识总结:I/O模型基础

    I/O基础 1、java1.4之前,java对I/O支持不完善,存在以下问题: 没有数据缓冲区,I/O性能存在问题...

  • Netty 权威指南笔记(一):网络 I/O 模型和 Java

    Netty 权威指南笔记(一):网络 I/O 模型和 Java IO 入门 Java I/O 模型的实现离不开底层...

  • Java I/O

    Java I/O主要包括三个部分1.流式部分2.非流式部分3.其他类 1.字符流 字符流处理文本数据,在java中...

  • java I/O

    一.文件/文件夹File 二.InputStream/OutputStream字节输入输出流 三.关闭流的方式 四...

  • Java I/O

    如果当初陪着你的人走远了,那些日子回忆起来会模糊吗? mark 标记reset 重置exist 存在modifie...

网友评论

      本文标题:Java I/O简述

      本文链接:https://www.haomeiwen.com/subject/ictasttx.html