java-FileInputStream读取文件不能读取全部内容

问题描述

FileInputStream读取文件不能读取全部内容

最近在学习java的输入流,用FileInputStream读取文件不能读取全部内容,都去的文件如下图:

注意:文件只有3行!!!!

在myeclipse中的输入如下图:

注意:输出只有2行!!!!

实在找不出哪里错了,还请不吝赐教,非常感谢!

代码如下:


package firPrj;

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

public class FileReaderClass {
    public static void main(String []args){
        FileReaderClass fileReader = new FileReaderClass();

        System.out.println("readByByte:");
        fileReader.readByByte("c:file.txt");
    }

    private void readByByte(String fileName){
        InputStream in = null;
        try{
            in = new FileInputStream(fileName);

            int tem = -1;
            while((tem = in.read()) != -1){
                System.out.write(tem);
            }
        } catch(IOException e){
            e.printStackTrace();
        } finally{
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

解决方案

楼主。。你输出的时候用的是System.out.write()方法,write()方法和print()方法的区别是一个输出字符流,一个输出字节流。
字符流有缓冲,即会把内容缓冲在内存中,只有flush()的时候才输出。
所以你在while循环后面加个System.out.flush();即可全部输出了。。
你可能会问为什么前面两行会输出,这就要看write()的源码了,你会发现 if ((b == '
') && autoFlush){out.flush();}
至此真相大白了吧。。前两行后面有换行所以会自动flush()

解决方案二:

/** //*读文件 * @param path * @return * @throws IOException */ public String FileInputStreamDemo(String path) throws IOException...{?? ??? File file=new File(path);??......
答案就在这里:FileInputStream读取文件

解决方案三:

我运行了一下,发现代码没有问题

解决方案四:

不要用System.out.write(tem)打印到控制台,Debug下看到tem已经读到了第三行的字符,但是因为write方法是将指定的字符写入缓冲中,在这行代码下加入System.out.flush();可以在控制台上打印出来第三行的字符;或者不用System.out.write(tem),用System.out.printf("%c",tem);这条方法也可以将文件中的全部字符打印到控制台

时间: 2024-12-23 19:20:37

java-FileInputStream读取文件不能读取全部内容的相关文章

flex+java选择本地文件然后读取文件内容并导入到数据库中,怎么实现啊,求高手指点,,

问题描述 flex+java选择本地文件然后读取文件内容并导入到数据库中,怎么实现啊,求高手指点,,需要实现的功能是:选择本地文件txt或xls的,然后把文件内容导入数据库中,, 解决方案 解决方案二:问错版块了解决方案三:引用1楼p2227的回复: 问错版块了 !!!!!!那应该算哪个版块的,java+flex解决方案四:flex有个块的http://forum.csdn.net/SList/Flex/java一个大版块了,你展开再自己决定啰

从Java的jar文件中读取数据的方法

  这篇文章主要介绍了从Java的jar文件中读取数据的方法,实例分析了java档案文件的相关操作技巧,需要的朋友可以参考下 本文实例讲述了从Java的jar文件中读取数据的方法.分享给大家供大家参考.具体如下: Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR 文件格式支持压缩.身份验证和版本,以及许多其它特性. 从 JAR 文件中得到它所包含

从Java的jar文件中读取数据的方法_java

本文实例讲述了从Java的jar文件中读取数据的方法.分享给大家供大家参考.具体如下: Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR 文件格式支持压缩.身份验证和版本,以及许多其它特性. 从 JAR 文件中得到它所包含的文件内容是件棘手的事情,但也不是不可以做到.这篇技巧就将告诉你如何从 JAR 文件中取得一个文件.我们会先取得这个 JAR

试图用java从excel文件中读取数据时出现的问题

问题描述 试图用java从excel文件中读取数据时出现的问题 org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: OPC Compliance error [M4.1]: there is more than one core properties relationship in the package ! at org.apache.poi.util.Packa

豆瓣-关于C语言按行读取文件,读取其中数字,挨个转换成doube类型,存入数组

问题描述 关于C语言按行读取文件,读取其中数字,挨个转换成doube类型,存入数组 int main() { FILE *fp; char buffer[50]; char filename[50]; int bufferLen; int i; int j = 0; char c; double c_number[50]; printf("Input file name: "); scanf("%s", filename); if((fp = fopen(filen

91-为什么fread读取文件是读取大部分还有一小部分没读取,怎么回事?

问题描述 为什么fread读取文件是读取大部分还有一小部分没读取,怎么回事? 求大神帮助. 解决方案 size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ; 实际读取的长度是 size*count,看看你的url长度是多少? 解决方案二: size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ; 实际读取的长度是 size*

c++ 读取文件-c++读取文件时怎么读取行数和列数建立动态数组

问题描述 c++读取文件时怎么读取行数和列数建立动态数组 现有一个txt文件,里面全是数字,c++读取时怎么自动判断其行数和列数,并根据行数列数建立动态数组小白求解 解决方案 行数 是通过换行字符来进行判断列数 计算两个换行符之间的字符位置来得到 通过对文件内容的按字符遍历来实现统计的功能 解决方案二: 通过换行符确定行数,通过最长一行中的字符数确定列数 解决方案三: #include <sstream>#include <string>std::string line;std::

android文件操作——读取assets和raw文件下的内容_Android

来自Resources和Assets 中的文件只可以读取而不能进行写的操作. assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件. 1. 先在Activity里面调用getAssets() 来获取AssetManager引用. 2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream. 3. 然后就是用已经open fi

PHP读取文件内容的五种方式_php实例

php读取文件内容的五种方式 分享下php读取文件内容的五种方法:好吧,写完后发现文件全部没有关闭.实际应用当中,请注意关闭 fclose($fp); -- php读取文件内容: -----第一种方法-----fread()-------- <?php $file_path = "test.txt"; if(file_exists($file_path)){ $fp = fopen($file_path,"r"); $str = fread($fp,files