java中BufferedReader和FileReader怎么用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中BufferedReader和FileReader怎么用?相关的知识,希望对你有一定的参考价值。
String fileName;
File file=new File("E:/"+fileName);
BufferedReader bufferedReader=new BufferedReader(new FileReader(file));
中是不是指FileReader的实例对象将fileName文件中的字符读到缓存区,然后BufferedReade的对象将缓存的数据读到程序中。是这样理解吗?如果没有FileReader会怎么样。谢谢
b=bf.read())!=-1 每次都会先读取一个字节出来,所以后面的bf.readLine());
读取的就是每行少一个字节
所以,应该使用
String valueString = null;
while ((valueString=bf.readLine())!=null)
System.out.println(valueString);
FileWriter类(字符输出流类)
构造方法:FileWriter fw = new FileWriter(String fileName);//创建字符输出流类对象和已存在的文件相关联。文件不存在的话,并创建。
如:FileWriter fw = new FileWriter("C:\\\\demo.txt");
FileWriter fw = new FileWriter(String fileName,boolean append);//创建字符输出流类对象和已存在的文件相关联,并设置该该流对文件的操作是否为续写。
如:FileWriter fw = new FileWriter("C:\\\\demo.txt",ture); //表示在fw对文件再次写入时,会在该文件的结尾续写,并不会覆盖掉。
主要方法: void write(String str) //写入字符串。当执行完此方法后,字符数据还并没有写入到目的文件中去。此时字符数据会保存在缓冲区中。此时在使用刷新方法就可以使数据保存到目的文件中去。
viod flush() //刷新该流中的缓冲。将缓冲区中的字符数据保存到目的文件中去。
viod close() //关闭此流。在关闭前会先刷新此流的缓冲区。在关闭后,再写入或者刷新的话,会抛IOException异常。 参考技术A 简单地说java的IO包使用包装器模式设计的,也就是说用FileReader包装了File,又用BufferedReader包装了FileReader,才可以用BufferedReader。BufferedReader不能直接包装File,所以说没有FileReader的话应该会编译不了,因为BufferedReader的构造函数的参数就没有File类型的。本回答被提问者和网友采纳 参考技术B 小伙子叫这个io的java装饰模式实现。
请关注下设计模式,装饰模式。
Java 读取和写入文本文件
package test_java; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.util.Arrays; import java.util.List; public class ReadWrite { public static void main(String [] args) { String filePath = "input.txt"; String destFilePath = "output.txt"; readWrite(filePath, destFilePath); } public static void readWrite(String filePath, String destFilePath) { List<String> report = Arrays.asList("Prevotella_intermedia", "Enterobius_vermicularis", "Parvimonas_micra", "Protopolystoma_xenopodis"); try { BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath)); // 读取文件 FileOutputStream fileOutputStream = new FileOutputStream(new File(destFilePath)); // 写入文件 String string; while((string = bufferedReader.readLine()) != null) { // 按行读取 if (string.split(" ")[0].trim().equals("species")) { fileOutputStream.write((string + " ").getBytes()); // 将符合条件的行写入文件 } if (report.contains(string.split(" ")[0].trim())) { fileOutputStream.write((string + " ").getBytes()); } } } catch (IOException e) { e.printStackTrace(); } } }
以上是关于java中BufferedReader和FileReader怎么用?的主要内容,如果未能解决你的问题,请参考以下文章