Java 从文件数组中读入文件
我是Java新手,正在尝试从Java读取文件,但我似乎不明白为什么会发生这种情况。当我试图读取文件时,会出现异常和错误。我只是不喜欢BufferedReader处理文件读取的方式。我不明白它想做什么。我听到一位朋友提到BufferedInputStream可以读取文件和文件数组中的文件 问题:如何从文件数组中正确读取多个文件Java 从文件数组中读入文件,java,arrays,file,file-io,bufferedinputstream,Java,Arrays,File,File Io,Bufferedinputstream,我是Java新手,正在尝试从Java读取文件,但我似乎不明白为什么会发生这种情况。当我试图读取文件时,会出现异常和错误。我只是不喜欢BufferedReader处理文件读取的方式。我不明白它想做什么。我听到一位朋友提到BufferedInputStream可以读取文件和文件数组中的文件 问题:如何从文件数组中正确读取多个文件 注释:我意识到没有任何代码看起来像是白费力气,但无论我盯着java文档看多久,它对我来说都毫无意义。我想知道是否有人可以举个例子,我可以研究BufferedStreams的
注释:我意识到没有任何代码看起来像是白费力气,但无论我盯着java文档看多久,它对我来说都毫无意义。我想知道是否有人可以举个例子,我可以研究BufferedStreams的代码。从我做的一个小调查来看,我更喜欢它的外观,描述也更好,但我实际上是如何做到的呢?使用我的通用readFile类。我将其修改为读取一组文件。它使用了BufferedInputStream,这需要一个FileInputStream。DataInputStream将BufferedInputStream作为参数,因此您还需要DataInputStream。我不知道如何直接回答你的问题……这是一个相当笼统的问题,但我希望这对你有所帮助
import java.io.*;
public class Foo
{
public void readFile(File[] myFile)
{
FileInputStream fiStream = null;
BufferedInputStream biStream = null;
DataInputStream diStream = null;
foreach(File file in myFile)
{
try
{
fiStream = new FileInputStream(file);
biStream = new BufferedInputStream(fiStream);
diStream = new DataInputStream(biStream);
while (dis.available() != 0)
{
System.out.println(dis.readLine());
}
} catch (IOException e)
{
e.printStackTrace();
} finally
{
try
{
fiStream.close();
biStream.close();
diStream.close();
} catch (IOException ex)
{
ex.printStackTrace();
}
}
}
}
}
我还想告诉您一件事,如果您使用的java版本高达7.0,则必须使用try with resource。在这里,使用PrintWriter代替BufferedReader会更容易
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadListOfFiles {
public static void main(String[] args) {
try {
File[] listOfFiles = {
new File("file1.txt"),
new File("file2.dat")
};
int val;
for (File file : listOfFiles) {
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
// When end of file is found in file -1 will be returned and loop will terminate.
while ((val = bis.read()) != -1) {
System.out.println((char) val);
}
} catch (IOException ex) {
System.out.println("Error in reading " + file + " file : " + ex);
} finally {
if (fis != null) {
fis.close();
}
if (bis != null) {
bis.close();
}
}
}
} catch (Exception ex) {
System.out.println("Error : " + ex);
}
}
}
非常感谢。我来看看。