所以打印的string字符串内容是一串空格(看我图1)。解决方法:int len = fis.read(); read 方法加入参数bys,这样才能把fis的内容注入bys里面。顺便说下,FileInputStream不能正确输出中文,因为这个是按字节输出的,每个中文站2个字节,会出现乱码。下面给出正确代码截图,和运行截图(图2 、3)...
java io怎么读取文件并输出到控制台上?
如果有乱码,那可能是转码的问题,你试一下对内容转码一下。
string = new String(string.getBytes("ISO-8859-1"),"UTF-8");
这句话加到输出语句之前,如果不好使就把UTF-8换成GBK,应该就可以了。2015-05-27
直接说问题原因:你只定义byte数组,但没有把文件流放入到数组中,所以打印的string字符串内容是一串空格(看我图1)。
解决方法:int len = fis.read(); read 方法加入参数bys,这样才能把fis的内容注入bys里面。
顺便说下,FileInputStream不能正确输出中文,因为这个是按字节输出的,每个中文站2个字节,会出现乱码。下面给出正确代码截图,和运行截图(图2 、3)
2018-05-15
用BufferedReader封装,字符占两个字节,你用byte容易出现只读了一半的情况。。。2015-05-27
把bys写到read里。int len = fis.read(bys);2015-05-27
你的程序只读取了文件的前200个字节。但出现乱码的原因更可能是字符编码问题,首先确认一下demo1.txt的编码,然后new String的时候,使用该编码。2018-05-16
楼上回答正解2015-05-27