public class TestBufferedReader2 {
public static void main(String[] args) throws Exception{
File file = new File("e:"+File.separator+"print.txt");
BufferedReader buf = new BufferedReader(new FileReader(file));
String str = null;
while((str=buf.readLine())!=null){
System.out.println(str);
buf.close();
BufferedReader读取控制台输入从控制台读取数据readline() 方法关于 `try-catch` 语句的拓展
Java不像C那样直接用 scanf 即可从控制台读入数据,读取数据很麻烦。这里推荐 BufferedReader ,可以从 控制台 和 文件 中读取数据
从控制台读取数据
readline() 方法
一次可以读取一行,以换行符作为一行的结束(返回的字符串不包括换行符),然后继续往下读。
如果不使用 throw,则可以使用 try-catch 语句,不过需要注意:catch的是 IO
笔者在大二下初学软件构造课,课程实验要求使用Java语言,由于事先仅仅接触过C/C++语言,且编写代码能力并不高,难免磕磕碰碰,借此机会记录一些错误以及心得体会。Java语言对笔者来说是一片新天地,若有理解有失偏颇方面,还请见谅。
在课程实验一构造当中,有这样一个要求:
从指定文本文件路径中获取信息
事先笔者并未接触过有关Java语言文件读入的相关信息与方法,只能从Java学习渠道中搜索解决方法。以下将从基础层次逐步解读问题。
IO简介
首先, 学习通过标准的的Java类,从classpath、URL或者Jar中加载文件。
然后,学习通用BufferedReader, Scanner, StreamTokenizer, DataInputStream, SequenceInputStream, FileChannel读取文件内容。也会讨论如何读取UTF-8编码的文件。
最后,学习Java7和Java8中新的加载和读取文件的技术。
2.1 输入文件
掌握键盘输入的基本形式
Buffer:表示缓冲区的。之前的StringBuffer,缓冲区中的内容可以更改,可以提高效率。
如果想接收任意长度的数据,而且避免乱码的产生,就可以使用BufferedReader。
public class BufferedReader extends Reader
因为输入的数据有可能出现中文,所以此处使用字符流完成
BufferedReade
BufferedReader 通过缓冲输入提高性能。它有两个构造函数:
BufferedReader(Reader inputStream)
BufferedReader(Reader inputStream, int bufSize)
第一种形式创建一个默认缓冲器长度的缓冲字符流。第二种形式,缓冲器长度由bufSize传入。
和字节流的情况相同,缓冲一个输入字符流同样提供支持可用缓冲器中流内反向移动的基础。为支持这点, BufferedReader 实现了 mark( ) 和 reset( )方法,
* 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
public static void readFileByBytes(String fileName) {
File file = new File(fileName);
InputStream in = nu
1、首先创建FileReader对象
2、将FileReader传递给BufferedReader
3、采用BufferedReader的readLine()方法和read()方法来读取文件内容
4、最后一定要的finally语句中关闭BufferedReaders
5、FileReader与BufferedReader配合使用,File,FileInputStream,BufferedInput
FileWriter writer = new FileWriter("weather.txt");
writer.write("今天天气晴朗,气温28℃。");
writer.close();
} catch (IOException e) {
e.printStackTrace();
// 从文件中读取天气情况
try {
FileReader reader = new FileReader("weather.txt");
BufferedReader bufferedReader = new BufferedReader(reader);
String line = bufferedReader.readLine();
System.out.println(line);
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
请注意,这只是一个简单的示例代码,实际应用中可能需要更复杂的逻辑和错误处理。