IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java IO流 -> 正文阅读

[Java知识库]Java IO流

IO包中的其他类?

IO包中的其他类
打印流o
·??PrintWriter?与?PrintStream
·?可以直接操作输入流和文件。
序列流
·?SequencelnputStream
·对多个流进行合并。
操作对象
ObjectlnputStream?与?ODjieaiOOutputStream
·被操作的对象需要实现?Serializable?(标记接口);
·练习:文件分割程序。

RandomAccessFile
·随机访问文件,自身具备读写的方法。
·通过skipBytes(intx), seek(intx)来达到随机访问。
管道流
PipedInputStream?和?PipedOutputStream
·输入输出可以直接进行连接,通过结合线程使用。?


			import java.io.*;
			class Read ?implements? Runnable
			{
				private ?PipedInputStream? in;
				Read(PipedInputStream i)
				{
					this in = in /
				}
				public void run()
				{
					try
					{

						byte[] buf = new byte[1024];
						System.out.println("读取前。。没有数据阻塞");
						int len = in.read(buf);
						System.out.println("读到数据。。但塞结束");

						String s = new String(buf, 0, len);
						system.out.println(s);
						in.close();
					}
					catch (IOException e)
					{
						throw new ?RuntimeException?("管道读取流失败");
					}
				}
			}
			class Write ?implements? Runnable
			{
				private ?PipedOutputStream? out;
				Write(PipedOutputStream? out)
					this.out = out;
			}
			public void run()
			{
				try
				{
					system.out.printin("开始写入数据、筹待6秒后。");

					Thread.sleep(6000);
					out.write("piped lai la".getBytes());
					out.close();
				}
				catch (Exception e)
				{
					throw new ?RuntimeException("管道输出流失败");
				}
			}
		}
				
		class ?PipedStreamDemo
		{
			public static void main(String[]args) throws ?IOException
			{
				PipedInputStream? in = new ?PipedInputStream();
				PipedOutputStream? out = new ?PipedOutputStream();
				in.connect(out);
				Read r = new Read();
				write w = new weite();
			}
		}
			


·操作基本数据类型
DatalnputStream?与?DataOutputStream
·操作字节数组
"?ByteArraylnputStream?与?ByteArrayOutputStream
·操作字符数组I
CharArrayReader?与?CharArrayWrite
·操作字符串
StringReader?与?StringWriter

/*?Data1nputStream?与?DataOutputStream
可以用于操作基本数据类型的数据的流对象。
*/
		mport java.io.*;
		class ?DataStreamDemo

		{
			public static void main(String[] args) throws ?IOException
			{
				//writeData():
				//readData();
				//?writeUTFDemo?();
				//OutputStreamWriterosw? = new OutputStreamWriter(new File Output Btream("ghk. txt"), "ghk");
				//osw.write(“你好”);
				//osw.close();
				// readUTFDemp();

			}

			readUTFDemo();
		}
		public static void ?readUTFDemo?()
		{
			DataInputStream? dis = new ?DataInputStream?(new File ?Inputstream?("utfdate."));
			String s = dis.readUTF();
			System.out.println(s);
			dis.close();
		}

		public static void ?writeUTFDemo?() throws ?IOException?
		{
			Dataoutputstream? dos = new ?Dataoutputstream?(new ?Fileoutput? Stram("utfdate. txt"));
			dos writeUTF("你好");
			dos.close();
		}
	}
		

?

用于操作字节数组的流对象。
ByteArrayInputstream?:在构造的时候,需要接收数据源,。而且数据源是一个字节数组,
Bytechnicatgoutsbrean :在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组,这就是数据目的地.
因为这两个流对象都操作的数组,并没有使用系统资源
所以,不用进行close关闭,
在流操作规律讲解时:
源设备,
键盘System. in,硬盘?FileStream?,内存?Arraystream?.目的设备:
控制台system. out,硬盘?Filestream?,内存?ArrayStream?.
用流的读写思想来操作数据。


	import java.io.*;
	class ?ByteArrayStream
	{
		public static void main(String[]args)
		{
			//数据源。
			ByteArayinputStreamb? is = new ?ByteArrayInputStream?(“ABCDEFD”, get Bytea());
			// 数据目的
			ByteArrayOutputStream bos? = new ?ByteArrayOutputStream?();
			int by = 0;
			while ((by = bis.read())!- 1)
			{
				bos.write(by);
			}
			System.out.println(bos.size());
			System.out.println(bos.toString());
		}
	}

字符编码


·字符流的出现为了方便操作字符。
·更重要是的加入了编码转换。
·通过子类转换流来完成:
InputStreamReader
OutputStreamWriter??
·在两个对象进行构造的时候可以加入字符集。

?编码:字符串变成字节数组。
解码:字节数组变成字符串。

String-- > byte[]; str.getBytes(charsetName?);
?? ?bytel]-- > String:new String(byte[], charsetName?);

import java.util.*;
	{
		class ?EncodeDemo
		{
			public static void main(String[] args) throws Exception
			{
				string s = “你好”;

				byte[] b1 = s.ɡetBytes("GBK");

				System.out.println(Arrays.toString(b1));
				Strings1 = new String(b1, "ISO8859-1");
				system.out.println("sì=" + s1);

				//对s1进行iso859-1编码。
				byte[]b2 = s1.getBytes("iso9859?1");
				System.out.printIn(Arrays.toString(b2));

				Strings2 = new String(b2, "gb/:");

				system.out.println("s2="ts2);

			}
		}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 18:48:07  更:2022-01-30 18:49:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:20:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码