已采纳回答 / pergod
                                
                                                            bytes是读取到字节的长度,如果因为流位于文件末尾而没有 可用 的字节,则返回值 -1。(bytes = in.read(buf, 0, buf.length))> 20*1024,如果这样设置的话,后面已经没有可用的字节还是会继续读入,这样会异常吧。
                            
                        
                        2016-12-22
                
            
                                已采纳回答 / 春城乐
                                
                                                            	public static void main(String[] args) throws IOException {		// TODO 自动生成的方法存根		String file="demo/dos.txt";		DataOutputStream dos=new DataOutputStream(new FileOutputStream(file));		dos.writeInt(10);		dos.writeInt(-10);		dos.writeLong(10L);		dos.writeDoub...
                            
                        
                        2016-12-17
                
            
                                已采纳回答 / 慕粉4406662
                                
                                                            b是byte类型占8位,而我们需要的int类型是32位,所以会进行符号位扩展。如果原来的byte为11111111,扩展后就会变为11111111 11111111 11111111 11111111,所以需要把前三位变为0,0xff二进制就是1111 1111,前三位都是0,所以与0xff相与后就只剩下最低的一位为1。
                            
                        
                        2016-12-14
                
            
                                已采纳回答 / 透过眼镜的脸
                                
                                                            getBytes()方法是将一个字符串转化为一个字节数组byte[]的方法,使用的是默认的UTF-8编码表进行转换的。byte是数据类型,不是进制类型,没有说是二进制。java的byte是-128~127区间,所以说转换成十六进制没毛病。
                            
                        
                        2016-12-05
                
            
                                已采纳回答 / chrealcool
                                
                                                            是数据长度。是in.read读取文件存放在buf中的长度,你代码中输出bytes看下就知道了。估计你是把数据和长度搞混了把数据是存放在buf字节数组中,即老师代码中输出buf[i]
                            
                        
                        2016-12-03
                
            
                                已采纳回答 / 绿色蝈蝈拜见
                                
                                                            不好意思,是我没有解释清楚。这个问题提的好!首先我们贴出Java的源码:public synchronized int read() throws IOException {  if (pos >= count) {    fill();  if (pos >= count)    return -1;  }  return getBufIfOpen()[pos++] & 0xff;注意返回值,read的返回值虽然是int,但是他是读取的byte&0xff得到的,而例2中,因为...
                            
                        
                        2016-12-01
                
            
                                已采纳回答 / rjyb22
                                
                                                            0xff即16进制的1515,转化为二进制为11111111,不管byte[i]要转化为什么进制,要变成多少位,只要和11111111相与,结果就是个八bit位的数,所以就去0,
只要知道0xff=11111111就好,它是8bit位。
                            
                        
                        2016-11-30
                
            
                                已采纳回答 / 绿色蝈蝈拜见
                                
                                                            凌晨来回答问题。首先我们要弄明白,对于一个buf[i], 我们在什么情况下需要在输出之前补0,什么时候不需要补0.答案很清楚,如果它的高四位都是0,那么我们需要补,否则不需要。那么问题来了,怎么判断呢?老师的代码是用buf[i] <= 0xf,可是代码结果不正确,会出现错误补0,也就是三个数字一起的情况。如果buf[i] == 0xff, 那么按程序是需要补0,因为作为一个byte,0xff实际上等于-1, 那么自然也小于0xf,因为0xf代表15.这就是出错的问题。if判定语句改为((buf&am...
                            
                        
                        2016-11-28
                
            
                                已采纳回答 / KeT
                                
                                                            你在构造文件输出流这个对象的时候,加了true吧。FileOutputStream(File file, 
boolean append) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流,大概就像这样子吧,如果你加了true,它原先的文件内容是不会删除,直接在原基础上加上新的内容。不对的话,可以把代码发上来,让大家看一看,对的话,请采纳,谢谢。
                            
                        
                        2016-11-20
                
            
                                已采纳回答 / qq_习惯就好_11
                                
                                                            package com.xu.io;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Arrays;public class FileRead {	public static void main(String[] args) throws IOEx...
                            
                        
                        2016-11-18
                
            
                                最新回答 / chrealcool
                                
                                                            txt文本的编码是ansi,虽然你写入时设置了gbk(txt文件中可以正常显示)但是控制台输出的编码是utf-8和ansi不相符合,所以出现乱码。个人意见,还请指正.
                            
                        
                        2016-11-15
                
             
             
        













