首页 文章 精选 留言 我的

精选列表

搜索[java],共10000篇文章
优秀的个人博客,低调大师

Java 学习(25)---(IO流之数据流 / 内存操作流 / 打印流 / 标准输入输出流)

数据流 可以读写基本数据类型的数据 数据输入流: DataInputStream DataInputStream(InputStream in) 数据输出流: DataOutputStream DataOutputStream(OutputStream out) privatestaticvoid read() throws IOException { // DataInputStream(InputStream in) // 创建数据输入流对象 DataInputStream dis = newDataInputStream( new FileInputStream("dos.txt")); // 读数据 byte b = dis.readByte(); short s = dis.readShort(); int i = dis.readInt(); long l = dis.readLong(); float f = dis.readFloat(); double d = dis.readDouble(); char c = dis.readChar(); boolean bb = dis.readBoolean(); // 释放资源 dis.close(); } privatestaticvoid write() throws IOException { // DataOutputStream(OutputStream out) // 创建数据输出流对象 DataOutputStream dos = new DataOutputStream(new FileOutputStream( "dos.txt" )); // 写数据了 dos.writeByte(10); dos.writeShort(100); dos.writeInt(1000); dos.writeLong(10000); dos.writeFloat(12.34F); dos.writeDouble(12.56); dos.writeChar('a'); dos.writeBoolean(true); // 释放资源 dos.close(); } 内存操作流 用于处理临时存储信息的,程序结束,数据就从内存中消失。 字节数组:ByteArrayInputStream ByteArrayOutputStream 字符数组:CharArrayReader CharArrayWriter 字符串:StringReader StringWriter // ByteArrayOutputStream() ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 写数据 for ( int x = 0; x < 10; x++) { baos.write(("hello" +x ).getBytes()); } // 释放资源 // 通过查看源码我们知道这里什么都没做,所以根本不需要 close() // baos.close(); // public byte[] toByteArray() byte []bys = baos.toByteArray(); // 读数据 // ByteArrayInputStream(byte[] buf) ByteArrayInputStream bais = new ByteArrayInputStream(bys); int by = 0; while((by = bais.read()) != -1) { System. out .print((char) by ); } // bais.close(); 打印流 (1)字节打印流,字符打印流 (2)特点: A:只操作目的地 ,不操作数据源 B:可以操作任意类型的数据 C:如果启用了自动刷新,在调用 println() 方法的时候,能够换行并刷新 D:可以直接操作文件 问题:哪些流可以直接操作文件呢 ? 看API,如果其构造方法能够同时接收 File和String类型的参数,一般都是可以直接操作文件的 (3)案例:复制文本文件 BufferedReaderbr = new BufferedReader(newFileReader("a.txt")); PrintWriter pw = new PrintWriter(new FileWriter("b.txt"),true); Stringline= null ; while ((line=br.readLine())!=null ) { pw.println(line ); } pw.close(); br.close(); 标准输入输出流 ( 理解即可) System类下面有这样的两个字段:in标准输入流 /out 标准输出流 (2)三种键盘录入方式 A:main 方法的 args 接收参数 B:System.in通过 BufferedReader 进行包装 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); C:Scanner Scanner sc = new Scanner(System.in); (3)输出语句的原理和如何使用字符流输出数据 A:原理 System.out.println("helloworld"); PrintStream ps = System.out; ps.println("helloworld"); B:把 System.out 用字符缓冲流包装一下使用 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); ​​​​​​

优秀的个人博客,低调大师

「架构技术专题」作为java程序员的你还不知道网站架构的演化(2)?

说道大型网站,就的先说大型网站的特点:高并发,大流量,高可用,海量数据等。下面就说说大型网站的架构演化过程,通过一步步的演化,我们就可以清晰直观地知道,究竟为什么要这么做? 6、使用反向代理和CDN加上网站相应 提高网站的访问速度,主要手段有使用CDN和反向代理。 CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理是部署在网站的中心机房,当用户请求到达中心机房后,首先访问的反向代理,如果反向代理缓存着用户请求的资源,则直接返回给用户。 7、使用分布式文件系统和分布式数据库系统 任何强大的单一服务器都满足不了大型网站持续增长的业务需求。 分布式数据库时网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务拆分,将不同业务的数据部署在不同的物理服务器上。 8、使用NoSQL和搜索引擎 搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。 9、业务拆分 大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将真个网站业务拆分成不同的产品线。 具体到技术上,也会根据产品线话费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过超链接建立管理,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。 10、分 布式服务 由于每一个应用系统都需要执行许多相同的业务操作,比如用户管理,session管理,那么可以将这些公用的业务提取出来,独立部署。 本公众号已开设如下专题,欢迎扫码或者长按以下二维码,查看相关专题! 【mysql优化专题】【HTTP协议】 【架构技术专题】【多线程/池专题】 【dubbo专题】【dubbo源码专题】 【JVM调优专题】【HTTP协议专题】 【设计模式专题】【高并发专题】 【架构技术专题】【netty专题】 【数据结构专题】【redis专题】 【spring源码】【springboot专题】

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册