在使用FileInputStream进行文件读取时,每次一开始运行程序,那个文件都会先被直接更新为0kb的空文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在使用FileInputStream进行文件读取时,每次一开始运行程序,那个文件都会先被直接更新为0kb的空文件相关的知识,希望对你有一定的参考价值。
如题,大概意思就是如何才能在保留原来文件的前提下使用FileInputStream来读取文件
参考技术A 执行过,这个是可以的。c:\\1.sql指在c盘下有个1.sql的文件。package com.testRead;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class TestIO1
/**
* 使用字符输入读取文件内容并输出
* @param args
*/
public static void main(String[] args)
Reader fr=null;
int length=0;
try
//1.创建字符输入流对象,负责读取文件
fr=new FileReader("c:\\1.sql");
//2.创建中转站数组,存放读取的内容
char[] ch = new char[2048];
try
//3.读取文件内容到ch数组
length=fr.read(ch);
catch (IOException e)
e.printStackTrace();
//4.输出保存在ch数组中的文件内容
System.out.println(new String(ch,0,length));
catch (FileNotFoundException e)
e.printStackTrace();
finally
try
if(null!=fr)
fr.close();
catch (IOException e)
e.printStackTrace();
本回答被提问者采纳 参考技术B public static void main(String[] args)
testRead();
public static void testRead()
try
FileInputStream fi = new FileInputStream("d:/a.txt");
int i = fi.read();
int allRead = 0;
while (i != -1) // 判断文件读完的条件
System.out.print((char) i); // 注意:这里简单地把读到的字节转为字符输出,不适用于所有情况。
allRead++;
i = fi.read();
System.out.println();
fi.close(); // 注意:如果用户忘记关闭打开的文件,系统可以通过 finalyze 方法在垃圾回收的时候替用户关闭这个流。
// 虽然如此,用户应该显示的调用这个方法。
catch (IOException e)
e.printStackTrace();
参考技术C 这样用没有问题啊
FileInputStream fis = new FileInputStream("d:/a.txt");
byte[] buf = new byte[1];
StringBuffer sb = new StringBuffer();
while (fis.read(buf) != -1)
sb.append(new String(buf));
fis.close();
System.out.println(sb);
以上是关于在使用FileInputStream进行文件读取时,每次一开始运行程序,那个文件都会先被直接更新为0kb的空文件的主要内容,如果未能解决你的问题,请参考以下文章
BigDataJava基础_FileInputStream的基本使用
解决FileInputStream 读取文件中文乱码问题(转)
Java:FileInputStream读取文件,byte[]过小出现错误
为啥使用 BufferedInputStream 逐字节读取文件比使用 FileInputStream 快?