Java中从文件中读取数据用什么函数
4个回答
展开全部
一:用Scanner可以很好的达到读写文件的作用。
但是学习过程中,由于Scanner的构造函数的参数是InputStream,搞得有点糊涂。后来发现InputStream是一个抽象类,FileInputStream是它的一个子类。而FileInputStream可以以String或File为参数读入文件流,然后用这个FileInputStream对象初始化一个Scanner,如sin。然后就可以像手动输入一样使用sin读入文件中的信息。用sin.hasnext()表示是否读到文件结尾。
对应的可以用PrintStream达到写入文件的效果,它要用一个FileOutputStream(或File file或String filename)作构造函数的参数,然后就可以像在控制台中显示数据一样写入文件。
二:可以用DataInputStream对象实现文件的读入,其构造函数的参数也是InputStream,所以也可以用FileInputStream,读取用DataInputStream.readInt()等即可,DataInputStream.readXX()会抛出EOFException()和IOException()。并且在读到文件结尾时会返回-1。另外用DataInputStream.available()==0表示读到文件结尾。
写入文件可以用DataOutputStream对象,写入可以用DataOutputStream.writeXX(),注意,这些writeXX()都是以二进制的方式写入的,所以直接打开文件显示的是乱码。要显示写入文件中的int等数据,要以String形式读入。虽然显示的是乱码,但是用DataInputStream的readXX()可以以int等类型读入。
但是学习过程中,由于Scanner的构造函数的参数是InputStream,搞得有点糊涂。后来发现InputStream是一个抽象类,FileInputStream是它的一个子类。而FileInputStream可以以String或File为参数读入文件流,然后用这个FileInputStream对象初始化一个Scanner,如sin。然后就可以像手动输入一样使用sin读入文件中的信息。用sin.hasnext()表示是否读到文件结尾。
对应的可以用PrintStream达到写入文件的效果,它要用一个FileOutputStream(或File file或String filename)作构造函数的参数,然后就可以像在控制台中显示数据一样写入文件。
二:可以用DataInputStream对象实现文件的读入,其构造函数的参数也是InputStream,所以也可以用FileInputStream,读取用DataInputStream.readInt()等即可,DataInputStream.readXX()会抛出EOFException()和IOException()。并且在读到文件结尾时会返回-1。另外用DataInputStream.available()==0表示读到文件结尾。
写入文件可以用DataOutputStream对象,写入可以用DataOutputStream.writeXX(),注意,这些writeXX()都是以二进制的方式写入的,所以直接打开文件显示的是乱码。要显示写入文件中的int等数据,要以String形式读入。虽然显示的是乱码,但是用DataInputStream的readXX()可以以int等类型读入。
展开全部
给你个例子:
import java.io.*;
public class TestFileReader {
public static void main(String[] args) {
FileReader fr = null;
int c = 0;
try {
fr = new FileReader("d:\\share\\java\\io\\TestFileReader.java");
int ln = 0;
while ((c = fr.read()) != -1) {
//char ch = (char) fr.read();
System.out.print((char)c);
//if (++ln >= 100) { System.out.println(); ln = 0;}
}
fr.close();
} catch (FileNotFoundException e) {
System.out.println("找不到指定文件");
} catch (IOException e) {
System.out.println("文件读取错误");
}
}
}
import java.io.*;
public class TestFileReader {
public static void main(String[] args) {
FileReader fr = null;
int c = 0;
try {
fr = new FileReader("d:\\share\\java\\io\\TestFileReader.java");
int ln = 0;
while ((c = fr.read()) != -1) {
//char ch = (char) fr.read();
System.out.print((char)c);
//if (++ln >= 100) { System.out.println(); ln = 0;}
}
fr.close();
} catch (FileNotFoundException e) {
System.out.println("找不到指定文件");
} catch (IOException e) {
System.out.println("文件读取错误");
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看你读取什么文件,如果是文本的话,直接使用readline()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般都是转化成流对象接收了,然后再解析
File类和相关API
File类和相关API
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询