本文目录
- printStream DataOutputStream使用时候有什么区别吗
- Java中的DataInputStream和DataOutputStream的作用
- DataOutputStream.writeByte()的用法
- java中数据流(DataOutputSream)到底有什么用
- Java中DataInputStream的用法
- java dataOutputStream
- JAVA DataOutputStream
printStream DataOutputStream使用时候有什么区别吗
PrintStream,它和DataOutputStream一样,可以将数据格式化输出。其中两者在输出字符串时的编码有要求,前者是输出时采用本地系统默认的字符编码,而后者采用的是适合于java的字符编码UTF-8,它也是过滤输出类的子类,因此也是一个装饰类,用法和DataOutputStream一样,其实,总的来说,这两个类只是在处理中文字符的时候采用的输出字符编码问题有明显区别,在输出其他的英文字符时是没有任何区别的。
Java中的DataInputStream和DataOutputStream的作用
Java中输出流分为DataInputStream(数据输入流)和DataOutputStream(数据输出流):
DataOutputStream:数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后应用程序可以使用数据输入流将数据读入。
DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。对于多线程访问不一定是安全的。 线程安全是可选的,它由此类方法的使用者负责。
DataOutputStream.writeByte()的用法
00100001 是八进制 100001,远超过byte大小了。 二进制的 100001,是16进制的 0x0021 output.writeByte(0x0021);
java中数据流(DataOutputSream)到底有什么用
汗。。FileReader.write("0.000215674131451521545464691") 这个是写了一个浮点数没错,但是你是用字符串的形式保存的,占用了几十个字节。。而用DataOutputSream写一个double值,只占用8个字节。光节省空间就不知道节省了多少。你用字符串形式写进去的,读出来要转化成double值,还需要一个转换步骤,又浪费不少时间。所以,要在合适的场合使用合适的方法,否则会造成很多问题。也许你觉得这无所谓,可是如果谷歌百度这样的公司也这么写代码,也许你要好几天才能看见我的回复了。。
Java中DataInputStream的用法
1、DataOutputStream:数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后应用程序可以使用数据输入流将数据读入。
2、例子:
/** * 必须先使用DataOutputStream写入数据,然后使用DataInputStream读取数据方可。 * * @author 徐越 * */ public class TestClass { public static void main(String args) throws Exception { TestClass t = new TestClass(); t.write(); t.read(); } public void write() throws Exception { String path = this.getClass().getClassLoader().getResource("test.txt").toURI().getPath(); OutputStream os = new FileOutputStream(path); DataOutputStream dos = new DataOutputStream(os); dos.writeDouble(Math.random()); dos.writeBoolean(true); dos.writeInt(1000); dos.writeInt(2000); dos.flush(); os.close(); dos.close(); } public void read() throws Exception { InputStream instream = this.getClass().getClassLoader().getResourceAsStream("test.txt"); DataInputStream dis = new DataInputStream(instream); double d = dis.readDouble(); boolean b = dis.readBoolean(); // 先写的先被读出来 int i1 = dis.readInt(); int i2 = dis.readInt(); instream.close(); dis.close(); System.out.println(d); System.out.println(b); System.out.println(i1); System.out.println(i2); } }
输出结果
0.4683893857027681true10002000
java dataOutputStream
字节流进行读写时不支持中文的,会出现乱码。
而且由于采用的是字节流,它会把你上面的20,180转换为对应的值存入流中。如果把20改为70(对应的ASCII码值为F),就能看到文件中被存入了F。至于读的时候,只有它自己才知道它写入了什么。
还有你的文件路径写法也不对,单\号而不是双\号。F:\\fileio\test.txt
作为历史最为悠久的编程语言,Java历经数十年依然盘踞在编程榜前三的位置,与它强大的功能和广泛的运用分不开。Java技术的更新迭代是开发者应该关注的问题,下面我就为大家盘点2019年互联网企业在Java开发中有哪些主流、热门的IT技术,帮助大家在职场中快速崛起。
1、微服务技术
微服务架构主要有:Spring Cloud、 Dubbo、 Dubbox等,以 Dubbo占比最高,可达26%,微服务网关技术,使用springcloud-zuul的程序员占比最高。
2、远程调用技术
使用RPC框架的程序员中, 使用Dubbo的人数占比最高,其次为 dubbox、gRPC、hessian也具有一定的使用比例。
3、开发技术
多数程序员在工作中使用的开发技术为权限管理和消息队列。1/4的程序员在工作中使用的开发技术为报表技术、分布式缓存技术和负载均衡解决方案。
4、权限管理技术
shiro的使用比例最高,其次为spring security和自定义框架。
5、消息队列技术
消息队列技术主要有:ActiveMQ、RabbitMQ和Kafka。RocketMQ的使用人数较少。
6、分布式缓存技术
Redis技术是绝大多数程序员在工作中会使用到的分布式缓存技术。其次为ehcache,而Memcached占比较低。
7、全文检索技术
Solr、elasticsearch和Lucene是多数老程序员在工作中使用的全文检索技术。其中,超半数的程序员在工作中使用Solr和elasticsearch。
Java在IT技术圈中仍然占据着主流地位,开发者想要不被企业淘汰就需要不断的学习掌握最新的技术,才能更具竞争力。
JAVA DataOutputStream
DataOutputStream是写数据的(binary文件),不是写文本的。写文本用FileWriter类。另一种方便的方法是用PrintStream类 PrintStream dos = null; dos = new PrintStream(new FileOutputStream("1.txt")); dos.print(97); dos.close();"我想问的是 DataOutputStream 的writeInt() 方法不是写一个Int类型的数吗?"一点没错,是写一个整数进去。但是是按二进制的方式写进去的,不是给你看的。你如果真想看,用ultraedit打开,它存了4个字节进去,值为0x61(也就是10进制的97,凑巧也是字母a的ascii值)正确的方法是:你需要用DataInputStream来读。记事本是用来读文本文件的,不是二进制文件的