最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中write方法是比较好费时间的,如果为了提高效率我们可以使用BufferedReader对Reader进行包装,这样可以提高读取得速度,我们可以一行一行的读取文本,使用readLine()方法。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt")))
String data = null
while((data = br.readLine())!=null)
{
System.out.println(data)
}
当你明白了如何用Reader来读取文本文件的时候那么用Writer写文件同样非常简单。有一点需要注意,当你写文件的时候,为了提高效率,写入的数据会先放入缓冲区,然后写入文件。因此有时候你需要主动调用flush()方法。与上面对应的写文件的方法为:
FileWriter fw = new FileWriter("hello.txt")
String s = "hello world"
fw.write(s,0,s.length())
fw.flush()
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt"))
osw.write(s,0,s.length())
osw.flush()
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true)
pw.println(s)
不要忘记用完后流!下面是个小例子,帮助新手理解。其实有的时候java的IO系统是需要我们多记记的,不然哪天就生疏了。
hello world i like java language
import java.io.
public class TestFile2
{
public static void(String args) throws IOException
{
FileReader fr = new FileReader("ming.txt")
char buffer = new char1024
int ch = 0
while((ch = fr.read())!=-1 )
{
System.out.print((char)ch)
}
InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt"))
while((ch = isr.read())!=-1)
{
System.out.print((char)ch)
}
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt")))
String data = null
while((data = br.readLine())!=null)
{
System.out.println(data)
}
FileWriter fw = new FileWriter("hello.txt")
String s = "hello world"
fw.write(s,0,s.length())
fw.flush()
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt"))
osw.write(s,0,s.length())
osw.flush()
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true)
pw.println(s)
fr.close()
isr.close()
br.close()
fw.close()
osw.close()
pw.close()
}
}
java处理文本的方法
最新推荐文章于 2024-06-17 20:34:59 发布

952

被折叠的 条评论
为什么被折叠?



