Java中byte输出write到文件的实现方法讲解

简述:

观察Byte值转为字符写入文件

如果在java里用byte打印出来

只有33 到 126的输出字符比较正常

此外发现Byte值为13是空格,10是换行符

知识点:

1. String 转为Byte输出("UTF-8"格式)

2. FileOutputStream 使用输出文件流

代码:

package testChar;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class TestChar {
 public static void main(String[] args){
 File outputFile = new File("output.txt");
 FileOutputStream outputFileStream = null;
 // try to open file output.txt
 try {
  outputFileStream = new FileOutputStream(outputFile);
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 }
 //output to output.txt
 for(int i = 33;i < 127;i++){
  try {
  String numStr = i + ": ";
  byte[] numBytes = numStr.getBytes("UTF-8");
  outputFileStream.write(numBytes);
  //i lies in [33, 127)
  outputFileStream.write(i);
  outputFileStream.write("\n".getBytes());
  } catch (IOException e1) {
  e1.printStackTrace();
  }
 }
 //close file stream
 try {
  outputFileStream.close();
 } catch (IOException e) {
  e.printStackTrace();
 }
 }
}

Byte从33 到 126 的字符输出:

output.txt  用Notepad打开:

33:   !
34:   "
35:   #
36:   $
37:   %
38:   &
39:   '
40:   (
41:   )
42:   *
43:   +
44:   ,
45:   -
46:   .
47:   /
48:   0
49:   1
50:   2
51:   3
52:   4
53:   5
54:   6
55:   7
56:   8
57:   9
58:   :
59:   ;
60:   <
61:   =
62:   >
63:   ?
64:   @
65:   A
66:   B
67:   C
68:   D
69:   E
70:   F
71:   G
72:   H
73:   I
74:   J
75:   K
76:   L
77:   M
78:   N
79:   O
80:   P
81:   Q
82:   R
83:   S
84:   T
85:   U
86:   V
87:   W
88:   X
89:   Y
90:   Z
91:   [
92:   \
93:   ]
94:   ^
95:   _
96:   `
97:   a
98:   b
99:   c
100:   d
101:   e
102:   f
103:   g
104:   h
105:   i
106:   j
107:   k
108:   l
109:   m
110:   n
111:   o
112:   p
113:   q
114:   r
115:   s
116:   t
117:   u
118:   v
119:   w
120:   x
121:   y
122:   z
123:   {
124:   |
125:   }
126:   ~

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Java中Timer的schedule()方法参数详解

    timer.schedule(new MyTask(),long time1,long timer2); 今天算是彻底的搞懂了这个曾经让我为之头疼的方法.下面我就重点介绍一下: 第一个参数,是 TimerTask 类,在包:import Java.util.TimerTask .使用者要继承该类,并实现public void run() 方法,因为 TimerTask 类 实现了 Runnable 接口. 第二个参数的意思是,当你调用该方法后,该方法必然会调用 TimerTask 类 Timer

  • Java调用CXF WebService接口的两种方式实例

    通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 1.静态调用 // 创建WebService客户端代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // 判断是否抛出异常 factory.getOutInterceptors().add(new LoggingInInterceptor()); // 注册webservic

  • MapStruct处理Java中实体与模型间不匹配属性转换的方法

    摘要: 前面介绍了MapStrut简单用法,MapStrut的最重要的特点就是处理Java中实体与模型间不匹配属性的转换. 实体模型 有一个User对象: public class User { private Integer id; private String name; private double account; private boolean married; // setters, getters, toString() } 有一个Employee 对象: public class

  • Java四种常用线程池的详细介绍

    一. 线程池简介 1. 线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池.使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务. 2. 线程池的工作机制 2.1 在线程池的编程模式下,任务是提交给整个线程池,而不是直接提交给某个线程,线程池在拿到任务后,就在内部寻找是否有空闲的线程,如果有,则将任务交给某个空闲的线程

  • JavaScript使用小插件实现倒计时的方法讲解

    CountDown.js 一个用来实现简单页面倒计时的轻量级工具 API CountDown.openTimeCountBySeconds()根据要计时的秒数打开一个显示剩余时间的倒计时 参数: Ele: 放置倒计时的元素 CountDownSeconds: 要计时的秒数 Sign: 用于给倒计时设置标记 (可以给多个倒计时设置同一个标记) Divider: 分割时分秒的分割符 EndFunc: 倒计时结束时执行的方法 ps:以上均为可选参数 示例 CountDown.openTimeCount

  • java模拟ajax访问另一个项目的controller代码实例

    不同项目,如何java模拟ajax访问另一个项目的controller 直接上码 package com.ultrapower.zq.iscloud.web.boc.api.utils; /** * create by liujie */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import ja

  • Java中字符数组和字符串与StringBuilder和字符串转换的讲解

    1.字符串->字符数组: String str = "abc": char[] a = str.toCharArray(); 记忆:字符串是个类,所以用内建函数 延伸: char b = str.charAt(1); str.length(); a.length; 2.字符数组->字符串: String str = String.valueOf(a): 记忆:类似强制类型转换格式,String(a) 延伸:字符转字符类 Character c = Character.val

  • Java中json与javaBean几种互转的讲解

    一.java普通对象和json字符串的互转 java对象---->json 首先创建一个java对象: public class Student { //姓名 private String name; //年龄 private String age; //住址 private String address; public String getName() { return name; } public void setName(String name) { this.name = name; }

  • Java实现批量修改txt文件名称的方法示例

    本文实例讲述了Java实现批量修改txt文件名称的方法.分享给大家供大家参考,具体如下: 最近在做特征选择的实验时,需要批量修改一下文件名称,在这里做一下记录. package com.cqu.experiment; import java.io.File; /** * @author 作者: E-mail:@126.com * @version 创建时间:2016年12月26日 下午3:02:01 类说明 */ public class RenameTxt { public static vo

  • Java多线程工具篇BlockingQueue的详解

    前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全"传输"数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利.本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景. 认识BlockingQueue 阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中通过一个共享的队列,可以使得数据由队列的一端输入,从另外一端输出: 常用的队列主要有以下两种:(当

随机推荐