---------------------- android培训
、java培训
、期待与您交流! ----------------------
System:
类中的方法和属性都是静态的
.
out:
标准输出
,
默认是控制台
in:
标准输入
,
默认是键盘
.
获取系统属性信息
:Properties
getProperties();
Runtime
对象
该类没有提供构造函数
,
说明不可以
new
对象
.
那么会直接想到该类中方法都是静态的
,
但该类中还有非静态方法
.
说明该类肯定会提供了方法获取本类对象
,
而且该方法是静态的
,
并返回值类型是本类类型
.
该类使用了单例设计模式
.
该方法是
static
Runtime getRuntime();
Runtime r=Runtime.getRuntime();
r.exec(“xxx.exe”);
IO
流用来处理设备之间的数据传输
Java
对数据的操作是通过流的方式
Java
用于操作流的对象都在
IO
包中
流按操作数据分为两种:字节流与字符流
按流向分为:输入流,输出流
字节流的抽象基类
InputStream outputStream
字符流的抽象基类
Reader Writer
IO
异常处理方式
,
在外面建立
null
引用
,
在
try
内初始化
,
在
finally
里关闭资源
.
一个标准的
IO
处理异常
import
java.io.FileWriter;
public
class
FileWriterDemo {
public
static
void
main(String[] args){
FileWriter fw=
null
;
try
{
fw =
new
FileWriter(
"demo.txt"
);
fw.write(
"nihaoma?"
);
}
catch
(Exception e) {
e.printStackTrace();
}
finally
{
try
{
if
(fw!=
null
)
fw.close();
}
catch
(Exception e) {
e.printStackTrace();
}
}
}
}
字符流的缓冲区
缓冲区的出现提高了对数据的读写效率
对应类
BufferedWriter
BufferedReader
缓冲区要结合流才可以使用
,
在流的基础上对流的功能进行了增强
.
缓冲区的出现是为了提高流的操作效率而出现的
.
所以在创建缓冲区前
,
必须要先有流对象
.
只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数
.
其实关闭缓冲区就是在关闭缓冲区中的流对象
.
装饰设计模式
:
当想要对已经对象进行功能增强时
,
可以定义一个类
,
将该对象传入
,
基于已有对象的功能并提供加强功能
,
那么自定义的该类就称为装饰类
.
装饰类通常会通过构造方法接收被装备的对象
.
并基于被装饰的对象的功能提供加强的功能
.
字符流
:
FileReader
FileWriter
BufferedReader
缓冲区
BufferedWriter
字节流
:
FileInputStream
FileOutputStream
BufferedInputStream
BufferedOutputStream
缓冲区
读取转换流
.InputStreamReader
键盘录入
.BufferedReader
bufr=new BufferedReader(new InputStreamReader(System.in));
写入转换流
OutPutStreamWriter
控制台输出
:BufferedWriter
buwr=new BufferedWriter(new OutputStreamWriter(System.out));
上面可以通过
System.setIn
和
System.setOut
来设置对应的源和目的
.
转换流什么时候用
?
字符和字节之间的桥梁
,
通常波及到编码转换时要用到转换流
.
流操作的基本规律
:
1.
明确源和目的
2.
操作的数据是否是纯文本
.
3.
当体系明确后
,
在明确要使用哪个具体对象
.
是否要提高效率
.
来加入转换流
.
IO
包
File
类是文件和目录路径名的抽象表示形式。
用来将文件或者文件夹封闭成对象
.
方便对文件与文件夹的属性信息进行操作
.
File
对象可以作为参数传递给流的构造函数
.
separator
字段是目录分隔符
.
File f=new File(“a.txt”);//
将
a.txt
封闭成
file
对象
.
可以将已有的和末出现的文件夹封装成对象
.
File f2=new File(“c:\\abc”,”b.txt”);//”b.txt”
可以传一个可变的参数
.
syso(f);//
打印文件的路径
,
按封装时的格式打印出来
.
File
常见方法
.
1.
创建
boolean
createNewFile();
2.
删除
boolean delete();
void
deleteOnExit();
mkdir();
new File(“abc\\kk”).mkdir();
mkdirs();
创建多级文件夹
.
3.
判断
Boolean
exists();
文件是否存在
.
isDirectory();isFile();
通过这两方法可以判断封装完的对象是什么
?
4.
获取信息
.getXXX();
列出目录下的所有内容
,
递归
.
1.
递归注意限定条件
.
2.
注意递归的次数
,
不要内存溢出
.
Properties
是
hashtable
的子类
.
也就是说它具备
map
集合的特点
,
而且它里边存储的键值都是字符串
.
是集合和
IO
技术相结合的集合容器
.
该对象的特点
:
可以用于键值对形式的配置文件
.
InputStreamReader 和OutputStreamWriter
明白这是什么转换流?按操作数据它们是什么流?
看JDK:InputStreamReader 是字节流通向字符流的桥梁;OutputStreamWriter 是字符流通向字节流的桥梁
明白这为什么是这样?明确接收什么流类型?为什么转成另一种流类型和转的过程?
我认为彻底明白了上面这些问题才算明白IO流的基础,才能知道什么流何时用合适.
自己刚学时也是一点不明白.到后面复习知识点时这在脑海中思路才清晰起来.
打印流
PrintWriter
与
PrintStream
可以直接操作输入流和文件
.
该流提供了打印方法
,
可以将各种数据类型的数据都原样打印
.
PrintStream
构造函数可以接收的参数类型
:
1.
file
对象
.
File
2.
字符串路径
.
String
3.
字节输出流
.
OutputStream
字符打印流
:PrintWriter
构造函数可以接收的参数类型
:
1.
file
对象
.
File
2.
字符串路径
.
String
3.
字节输出流
.
OutputStream
4.
字符输出流
Writer
序列流
SequenceInputStream
对多个流进行合并
.
表示其他输入流的逻辑串联
.
可以接收多个字节流对象
,
用
enum
形式来表示
.
操作对象
ObjectInputStream
与
ObjectOutputStream
被操作的对象需要实现
Serializable(
标记接口
).
管道流
PipedInputStream
和
PipedOutputStream
对应的用
connect
相连接
.
随机访问文件
RandomAccessFile
该类直接继承自
Object,
不算是
IO
体系中子类
,
因为具备读写所以是
IO
包中成员
.
内部封装了一个数组
,
而且通过指针对数组元素进行操作
.
可以通过
getFilePointer
获取指针位置
,
还可以通过
seek
改变指针位置
.
其实能完成读写的原理就是内部封装了字节输入流和字节输出流
,
该类只能操作文件
.
而且操作文件还有模式
.
r
rw
该对象的构造函数要操作的文件不存在会自动创建
,
如果存在不会覆盖
.
如果模式为
r
不会创建文件
,
只会读取
,
文件如果不存在会出异常
.
如果模式为
rw,
文件不存在会创建
,
存
在不会覆盖
.
操作基本数据类型的
IO
类
DateInputStream
与
DateOutputStream
操作字节数组
ByteArrayInputStream
与
ByteArrayOutputStream
这两个流对象都操作的数组
,
并没有使用系统资源
,
所以不用
close
关闭
.
内存就是
ArrayStream,
用流的读写思想操作数组
.
操作字符数组
CharArrayReader
与
CharArrayWriter
操作字符串
StringReader
与
StringWriter
字符编码
:
编码
:
字符串变成字节数组
String
à
byte[];
str.getBytes();
解码
:
字节数组变成字符串
.
byte[]
à
String:
new String(byte[]);
服务器用的是
ISO8859-1
<待续>
---------------------- android培训
、java培训
、期待与您交流! ----------------------
分享到:
相关推荐
黑马程序员_毕向东_Java基础视频教程第18天-14-IO流(拷贝文本文件图例).zip
黑马程序员_毕向东_Java基础视频教程第18天-13-IO流(拷贝文本文件).zip
黑马程序员_毕向东_Java基础视频教程第18天-09-IO流(文件的续写)
黑马程序员_毕向东_Java基础视频教程第18天-12-IO流(文本文件读取练习).zip
黑马程序员_毕向东_Java基础视频教程第18天-11-IO流(文本文件读取方式二).zip
Java-IO流高级-例题 & 例题源码 & PPT教学文档(黑马程序员详细版)。
传智播客黑马程序员javaIO流重点总结(必读).doc
java_io流讲解.docx.zip java_io流讲解.docx.zip
java_IO流的处理.ppt java_IO流的处理.ppt
Java面向对象程序设计第08章_Java-IO流.ppt
JAVA_IO流学习总结
JAVA_IO流整理思维导图.
含面向对象,异常处理和常用类,线程技术,集合框架,IO操作,网络编程,文件操作,反射机制,
java.io.Reader 和 java.io.InputStream 的区别
传智播客_Java培训_毕向东_Java基础[07-IO]系黑马程序员_毕向东_Java基础视频教程
java IO流总结文档。总要总结了 java IO 流的主要基本操作和使用到的类及方法。对于入门比较有用,如果对 IO 流比较了解,就没必要看了。
java控制串口发送数据时在windows环境下正常,linux环境下报错C [librxtxSerial.so+0x75da] Java_gnu_io_RXTXPort_nativeDrain+0xea,经多方查询验证为rxtx包版本问题,用本文档中的版本可以正常运行
一个介绍文件流操作的文章 内含代码.....
行时所需要的基本条件和许多 Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 是提供给 普通用户使用的,如果你只想运行别人开发好的 Java 程序,那么,你的计算机上必须且只需安装 JRE。 JDK(Java ...