在使用FileInputStream进行文件读取时,每次一开始运行程序,那个文件都会先被直接更新为0kb的空文件
展开全部
执行过,这个是可以的。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();
}
}
}
}
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();
}
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
}
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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样用没有问题啊
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 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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询