public class FileDemo {
public static void byteReader(){
File f = new File("d:\\dre.txt");
try {
InputStream in = new FileInputStream(f);
byte[] bytes = new byte[1];
int len = -1;
while((len = in.read(bytes))!=-1){
System.out.println(bytes[0]);
}
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
byteReader();
}
}
}输出的结果为-50和-46,dre记事本里只有一个我字,为什么是这个结果,求大神细讲一下
(Java)这个结果怎么得的
答案:3 悬赏:10 手机版
解决时间 2021-01-28 19:25
- 提问者网友:相思似海深
- 2021-01-28 04:54
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-01-28 06:25
System.out.println(bytes[0]);
问题在这,bytes[0]里面放的不是中文,而是二进制码,你要先将bytes[0]里面的二进制转码,比如转为String str=new String( bytes ,"UTF-8"); 然后在输出,还有一点,你最好byte[] bytes = new byte[3];或者分配更多,不然你输出来的也是乱码,你可以试试
问题在这,bytes[0]里面放的不是中文,而是二进制码,你要先将bytes[0]里面的二进制转码,比如转为String str=new String( bytes ,"UTF-8"); 然后在输出,还有一点,你最好byte[] bytes = new byte[3];或者分配更多,不然你输出来的也是乱码,你可以试试
全部回答
- 1楼网友:不想翻身的咸鱼
- 2021-01-28 09:34
先编译然后运行就可以得到结果了
- 2楼网友:第幾種人
- 2021-01-28 08:03
就是将你输入的字符串转化为整数相加
如果你输入的有 3.12 这样的浮点数
那么你需要用 Float.parseFloat() 这个函数转化为浮点数后才能相加
swing里面好像没直接只能输入数字的输入框
你可以用这个组合【转】
import javax.swing.text.MaskFormatter;
import javax.swing.JFormattedTextField;
这两个控件的使用是先实例化
MaskFormatter m=new MaskFormatter(##**##);
JFormattedTextField j=new JFormattedTextField(m);
注意里面的*合#是不同效果的,一个是允许英文很数字。一个允许许数字;
这两个组合使用,可以实现你的要求,不过长度是定死的;
简单的就是直接给文本框JTextField加一个按键事件,如果捕捉到的不是数字就拒绝操作;代码如下;JTextField1.addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent event){
char ch=event.getKeyChar();
求采纳为满意回答。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯