您现在的位置是:主页 > news > 东莞做网站需要多少钱/推广方案流程
东莞做网站需要多少钱/推广方案流程
admin2025/4/29 20:54:08【news】
简介东莞做网站需要多少钱,推广方案流程,常州网站建设最易,网站建设详细教程视频Java IO篇1. File类1.1 File类常见方法:创建。删除判断。获取信息。1.2 递归2. Properties3. 打印流3.1 字节打印流PrintStream3.2 字符打印流PrintWriter4. 对象序列化4.1 ObjectOutputStream4.2 ObjectInputStream5. 管道流6. 随机读写 RandomAccessFile7. 操作基…
Java IO篇
- 1. File类
- 1.1 File类常见方法:
- 创建。
- 删除
- 判断。
- 获取信息。
- 1.2 递归
- 2. Properties
- 3. 打印流
- 3.1 字节打印流PrintStream
- 3.2 字符打印流PrintWriter
- 4. 对象序列化
- 4.1 ObjectOutputStream
- 4.2 ObjectInputStream
- 5. 管道流
- 6. 随机读写 RandomAccessFile
- 7. 操作基本数据类型的流
- 8. 操作字节数组的流
- 9. 字符编码
- 9.1 码表
1. File类
用来将文件或者文件夹路径封装成对象,方便对文件与文件夹进行操作。File
对象可以作为参数传递给流的构造函数。
1.1 File类常见方法:
创建。
- boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。和输出流不一样,输出流对象一建立创建文件。而且文件已经存在,会覆盖。
- boolean mkdir():创建文件夹。
- boolean mkdirs():创建多级文件夹。
删除
- boolean delete():删除失败返回false。如果文件正在被使用,则删除不了返回false。
- void deleteOnExit();在程序退出时删除指定文件。
判断。
- boolean exists() :文件是否存在.
- isFile():
- isDirectory();
- isHidden();
- isHidden();
获取信息。
- getName():
- getPath():
- getParent():
- getAbsolutePath()
- long lastModified()
- long length()
1.2 递归
- 函数自己调用自己。
- 注意:递归时一定要明确结束条件。
- 应用场景:
- 当某一功能要重复使用时。
2. Properties
Properties
是Hashtable
的子类,也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。是集合中和IO技术相结合的集合容器。
该对象的特点:可以用于键值对形式的配置文件。那么在加载数据时,需要数据有固定格式:键=值。
3. 打印流
该流提供了打印方法,可以将各种数据类型的数据都原样打印。
3.1 字节打印流PrintStream
构造函数可以接收的参数类型:
- file对象。File
- 字符串路径。String
- 字节输出流。OutputStream
3.2 字符打印流PrintWriter
构造函数可以接收的参数类型:
- file对象。File
- 字符串路径。String
- 字节输出流。OutputStream
- 字符输出流,Writer。
4. 对象序列化
4.1 ObjectOutputStream
可以将实现了Serializable
的接口的对象转成字节写出到流中
4.2 ObjectInputStream
可以从流中读取一个ObjectOutputStream
流写出的对象
5. 管道流
PipedInputStream
:管道输入流,可以从管道输出流中读取数据
PipedOutputStream
:管道输出流,可以向管道输入流中写出数据
在建立管道输出流时可以在构造方法中将管道输入流传入,或者用connect()方法将输入输出流接上,
建议:输出与输入在两个不同的线程进行操作
6. 随机读写 RandomAccessFile
该类不是算是IO体系中子类。而是直接继承自Object。
7. 操作基本数据类型的流
DataInputStream
、DataOutputStream
,可以按照基本数据类型占用空间大小读写数据
8. 操作字节数组的流
ByteArrayOutputStream
: 写出到字节数组(内存)中,可以获取写出的内容装入一个字节数组。通常我们用这个流来缓冲数据。ByteArrayInputStream
:可以从一个字节数组中读取字节CharArrayWriter
:写出字符到字符数组(内存)中,可以获取写出的内容装入一个字符数组。CharArrayReader
:可以从一个字符数组中读取字符。
用于操作字节数组的流对象。
ByteArrayInputStream
:在构造的时候,需要接收数据源,。而且数据源是一个字节数组。ByteArrayOutputStream
: 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。
/*字节数组输入流 ByteArrayInputStream
*
*
* */
public class Demo5 {public static void main(String[] args) throws IOException {byte[] bytes = "hello world!".getBytes();InputStream byteArrayInputStream = new ByteArrayInputStream(bytes); //发生多态 继承,重写,父类的引用指向子类byte[] bytes1 = new byte[1024];int temp;while((temp=byteArrayInputStream.read(bytes1,0,bytes1.length))!=-1){String str = new String(bytes1,0,temp);System.out.println(str);}}
}
/*字节数组输出流 ByteArrayOutpurStream
*
*
* */
public class Demo6 {public static void main(String[] args) throws IOException {ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();//创建一个新的 byte 数组输出流。byte[] data="hello world!世界".getBytes();arrayOutputStream.write(data);byte[] bytes = arrayOutputStream.toByteArray();System.out.println(bytes.length+"----"+new String(bytes));byte[] s = new String("世界你好").getBytes();System.out.println(s.length+"---"+new String(s));}
}
9. 字符编码
9.1 码表
ASCII
:英文码表,每个字符占1个字节。A是65,a是97
GB2312
:兼容ASCII,包含中文,每个英文占1个字节(正数),中文占2个字节(2个负数)。
GBK
:兼容GB2312,包含更多中文,每个英文占1个字节(正数),中文占2个字节(第一个负数、第二个可正可负)。
Unicode
:国际码表,每个字符占2个字节。Java中存储字符类型就是使用的Unicode编码。
UTF-8
:国际码表,英文占1个字节,中文占3个字节。
java提供了StandardCharsets类