java io怎么读取文件并输出到控制台上?

有一个txt文件,内容是: hello
现在想通过FileInputStream 输入流读取这个txt里的内容,并把内容输出到控制台上。
请问怎么实现?

import java.io.FileInputStream;
import java.io.IOException;

public class demo {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("demo1.txt");
byte [] bys =new byte[200];
int len = fis.read();
String string = new String(bys,0,len);
System.out.println(string);
我这样打出来都是乱码,求大神。。。。

直接说问题原因:你只定义byte数组,但没有把文件流放入到数组中,所以打印的string字符串内容是一串空格(看我图1)。

解决方法:int len = fis.read(); read 方法加入参数bys,这样才能把fis的内容注入bys里面。

顺便说下,FileInputStream不能正确输出中文,因为这个是按字节输出的,每个中文站2个字节,会出现乱码。下面给出正确代码截图,和运行截图(图2 、3)

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-16
如果有乱码,那可能是转码的问题,你试一下对内容转码一下。
string = new String(string.getBytes("ISO-8859-1"),"UTF-8");
这句话加到输出语句之前,如果不好使就把UTF-8换成GBK,应该就可以了。本回答被网友采纳
第2个回答  2015-05-27
用BufferedReader封装,字符占两个字节,你用byte容易出现只读了一半的情况。。。
第3个回答  2015-05-27
把bys写到read里。int len = fis.read(bys);
第4个回答  2018-05-16
你的程序只读取了文件的前200个字节。但出现乱码的原因更可能是字符编码问题,首先确认一下demo1.txt的编码,然后new String的时候,使用该编码。

java io怎么读取文件并输出到控制台上?
解决方法:int len = fis.read(); read 方法加入参数bys,这样才能把fis的内容注入bys里面。顺便说下,FileInputStream不能正确输出中文,因为这个是按字节输出的,每个中文站2个字节,会出现乱码。下面给出正确代码截图,和运行截图(图2 、3)...

java如何扫描一个文本然后输出这个文本里的一些内容
通过IO读取文件 FileInputStream fis=new FileInputStream("要读取的文件要路径")byte[]buf=new byte[1024];设置基于缓存的读写方法 int i=-1;while((i=fis.read())!=-1){ system.out.println((char)i)}将文件内容输入到控制台 这里的文件特指文本文件如果是别的话可能导致乱码 ...

JAVA 图书管理系统,怎么用流读取TXT文档在控制台显示
像这种常用的IO流读取问题,一般都有人给你封装好了,你直接拿来用就行。 比如 apache的 common-io jar。使用举例:File f = new File("d:\\\\data.txt");System.out.println(FileUtils.readFileToString(f)); \/\/读取成一个字符串 List<String> lines = FileUtils.readLines(f); \/\/每...

java怎么读入文件,并逐行输出
java读入文件,并逐行输出,先在D:\/\/home建立个文件夹,然后创建一个a.txt文件,然后编辑文件,文本编辑的编码是utf-8,然后用流逐行读取输出,如下:import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;imp...

java io流如何读取文件效率高
你在类的使用上不太恰当。如果你想读取文本内容,你应该使用InputStreamReader这个类,使用这个类并且指定文本内容的字符集,就可以读出正确的内容。InputStream这个类是用来读取二进制字节的,比如做文件复制的时候,应该是用InputStream这个类。不管是InputStreamReader还是InputStream,都可以声明临时缓冲数组,...

java编程中IO流什么方法把整个文本文件的文字读取入系统?
先创建file类,把你要读取的文件读进来,定义byte数组,把文件的字节都读进byte里,然后就可以了。楼上的方法是对的,你可以参考

java 从文件中读取实数数据(三行三列),在控制台输出大的
import java.io.FileReader;import java.io.BufferedReader;import java.io.IOException;class ReadClass { FileReader fr;BufferedReader br;public ReadClass() { try { fr = new FileReader("E:\\\\111.txt");br = new BufferedReader(fr);} catch (IOException Ie) { System.out.println("文件...

查找C盘下所有txt文件并输出文件名到控制台 Java
import java.io.File;public class FileList { public static void main(String[] s) { File f = new File("c:\/");Search(f);} private static void Search(File root) { for (File f : root.listFiles()) { if (f.isDirectory())Search(f);if (f.getName().toUpperCase().ends...

java io 字节流如何读取一行数据,我要一行一行的读取数据,因为数据都是...
字节是不存在行不行这个概念的,不过你可以每次读取固定长度 字符流可以一行一行的读取数据

java文件上传到某一台指定服务器怎么弄?
要将Java文件上传到指定服务器,可以使用以下步骤:使用Java中的Socket类或Java NIO(New IO)库来建立网络连接。在连接上发送文件,可以使用Java中的FileInputStream或FileReader类从本地文件系统读取文件内容,然后使用OutputStream或Writer类将文件内容写入网络连接。在服务器端,使用Java中的ServerSocket类或...

相似回答