Java IO流使用,socket基础
2016-06-22 08:52
337 查看
工作内容:
1.学习异常
2..学习IO流
成果分享:
1.培训分享:
字节流和字符流的区别:
字节流:每次读取8位
字符流:每次读取16位
两者的操作形式一样,功能也一样。
区别:字节流没有使用到缓冲区,而是直接操作输出的,而字符流使用到了缓冲区,是通过缓冲区操作输出的
何时使用:
实际中很多的数据是文本,所以提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化;除了处理文本,其他的都是用字节流比较方便,例如:图片、电影都是字节保存的。
转换流:
在整个IO包中,除了字节和字符流之外,还包含了一种称为转换流的流,可以将一个字节流变为字符流,也可以将一个字符流变为字节流,主要使用以下的两个类完成:
OutputStreamWriter:可以将输出的字符流变为字节流的输出形式
InputStreamReader:将输入的字节流变为字符流输入形式
内存操作流:
ByteArrayOutputStream来完成输入输出功能了。
ByteArrayInputStream主要功能是将内容写入到内存之上
ByteArrayOutputStream主要功能是将内容从内存中的数据输出
随机访问文件流:
随机访问文件流,自身具备读写的方法。
通过skipBytes(int x),seek(int x)来达到随机访问。
注意:用RandomAccessFile来操作文件的时候,由于对占两个字节的字符可能出现截断的情况,所以只建议操作字节型文件。
字符编码:
字符流的出现为了方便操作字符。
更重要是的加入了编码转换。
通过子类转换流来完成。
InputStreamReader
<
4000
span style="font-size:14px;">OutputStreamWriter
在两个对象进行构造的时候可以加入字符集。
实例:
2.自学分享:
学习socket的基础使用
涉及类:
ServerSocket:服务器端
1.学习异常
2..学习IO流
成果分享:
1.培训分享:
字节流和字符流的区别:
字节流:每次读取8位
字符流:每次读取16位
两者的操作形式一样,功能也一样。
区别:字节流没有使用到缓冲区,而是直接操作输出的,而字符流使用到了缓冲区,是通过缓冲区操作输出的
何时使用:
实际中很多的数据是文本,所以提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化;除了处理文本,其他的都是用字节流比较方便,例如:图片、电影都是字节保存的。
转换流:
在整个IO包中,除了字节和字符流之外,还包含了一种称为转换流的流,可以将一个字节流变为字符流,也可以将一个字符流变为字节流,主要使用以下的两个类完成:
OutputStreamWriter:可以将输出的字符流变为字节流的输出形式
InputStreamReader:将输入的字节流变为字符流输入形式
内存操作流:
ByteArrayOutputStream来完成输入输出功能了。
ByteArrayInputStream主要功能是将内容写入到内存之上
ByteArrayOutputStream主要功能是将内容从内存中的数据输出
随机访问文件流:
随机访问文件流,自身具备读写的方法。
通过skipBytes(int x),seek(int x)来达到随机访问。
注意:用RandomAccessFile来操作文件的时候,由于对占两个字节的字符可能出现截断的情况,所以只建议操作字节型文件。
字符编码:
字符流的出现为了方便操作字符。
更重要是的加入了编码转换。
通过子类转换流来完成。
InputStreamReader
<
4000
span style="font-size:14px;">OutputStreamWriter
在两个对象进行构造的时候可以加入字符集。
实例:
import java.io.File; /* * 列出目录下的全部文件名称 * 文件名输出 \t后 * */ public class ListAllFileName { public static void main(String[] args) { ListAllFileName demo = new ListAllFileName(); File file = new File("f:" + File.separator + "Demo"); demo.listAllFileName(file); } public void listAllFileName(File file) { if (file.exists()) { if (file.isFile()) { System.out.println("\t" + file.getName()); } else if (file.isDirectory()) { System.out.println(file.getName()); File list[] = file.listFiles(); for (int i = 0; i < list.length; i++) { listAllFileName(list[i]); } } } else { System.out.println("文件路径不存在,或文件不存在"); } } }
2.自学分享:
学习socket的基础使用
涉及类:
ServerSocket:服务器端
System.out.println("服务器已经上线"); ServerSocket server = new ServerSocket(5000)//port是自己定义的端口号[在这里写的是5000]:0-65535,最好不要靠太前面(可能已经被占用) Socket socket = server.accept();//如果没有客户端链接会被堵塞[并且不会往后执行],有客户端链接的时候,会继续往后执行 //客户端链接了以后,服务器端就可以向客户端发送信息了。。。 OutputStreamWriter dos = new DataOutputWriter(socket.getOutputStream);//获取一个输出流 dos.write("[系统消息]欢迎上线");//把服务器端信息写入流,这时可以在客户端通过getInputStream来获得这个流写入的内容 dos.close(); server.close(); //这时已经完成了一个客户的链接 Socket:客户端 Socket client = new Socket("127.0.0.1",5000);//本机做服务器可以用“127.0.0.1” //到这里已经链接到了服务器端 InputStreamReader dis = new DataInputReader(client.getInputStream);//这里的dis读取到的信息将是在服务器端写入的信息 String str = null; while((str = dis.readLine) != null){ System.out.println(str); } dis.close(); //到这里就结束了本次链接,并没有向服务器端发送信息哈
相关文章推荐
- 【java】java显示会动的图片(类似于动画)
- Java 生成数字证书系列(四)生成数字证书(续)
- keytool error: gnu.javax.crypto.keyring.MalformedKeyringException: incorrect magic
- Java 生成数字证书系列(三)生成数字证书
- java 面向对象
- Java Swing 树状组件JTree的使用方法【图】
- HashMap源码理解
- Java的特征之一 封装
- 安装Maven出现 ERROR: JAVA_HOME is set to an invalid directory.
- Struts2系列:(6)result-type和全局result
- java怎么从控制台输入的几种方法
- Java之类的封装
- Struts2系列:(5)与Servlet API解耦(Servlet相关对象访问)
- Java面向对象
- 继承与组合的区别
- 日常小结-内省、beanutils
- struts2 简单数据验证
- Spring入门第1天--IOC快速入门
- Eclipse WEB项目更改项目名
- 用CXF编写基于spring的web service 并添加cxf日志拦截器和自定义拦截器