java文件读取。(单字节读取和按行读取读取)

java中很多关于文件读取的工作。
操作也很平凡。
所以java的文件读取是很重要的一部分。
首先是单字节的读取工作。
见源代码:

 1package ReadFile;
 2
 3import java.io.FileReader;
 4import java.io.IOException;
 5
 6public class readFile {
 7    public static void readfile(String file){
 8        try{
 9            FileReader fr = new FileReader(file);
10            int ch = 0;
11            while((ch=fr.read())!=-1){
12                System.out.println((char)ch);
13            }

14        }
catch(IOException e){
15            e.printStackTrace();
16        }

17    }

18    public static void main(String[] args) {
19        readfile("e:\\dd.txt");
20    }

21}

这里是但读取每个自己或字符。
如果要进行按行读取的话,必须采用BufferedReader  BufferedReader中的readline();
 1package ReadLime;
 2
 3import java.io.BufferedReader;
 4import java.io.BufferedWriter;
 5import java.io.FileReader;
 6import java.io.FileWriter;
 7import java.io.IOException;
 8
 9public class readLine {
10    public static void readline(String file,String writerfile){
11        try{
12        FileReader fr = new FileReader(file);
13        BufferedReader br = new BufferedReader(fr);
14        
15        FileWriter fw = new FileWriter(writerfile); //写文件操作,把得到的file对应的文件中内容写入,writerfile中去。
16        BufferedWriter bw = new BufferedWriter(fw);
17        String readoneline;
18        int l;
19        while((l = br.read()) != -1){
20            readoneline = br.readLine();
21            bw.write(readoneline);
22            bw.newLine();
23            System.out.println(readoneline);
24        }

25        bw.flush();
26        br.close();
27        bw.close();
28        br.close();
29        fw.close();
30        fr.close();
31        }
catch(IOException e){
32            e.printStackTrace();
33        }

34    }

35    public static void main(String [] args){
36        readline("e:\\dd.txt","e:\\aa.txt");
37    }

38}

posted on 2008-10-06 14:50 duduli 阅读(32464) 评论(12)  编辑  收藏 所属分类: java

评论

# re: java文件读取。(单字节读取和按行读取读取) 2008-10-06 15:16 隔叶黄莺

再简单也比不过 groovy 的这一行代码

text = new File("foo.txt").getText();   回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2008-10-06 16:23 van

@隔叶黄莺

PHP,Python,Rudy都可以这么简单..

这样没啥可比性..

学Java的新手依然比学其他语言的新手多.

So从这个角度来讲,博主的文章还是更具价值的.:-)  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2008-10-06 19:00 隔叶黄莺

第一段代码应使用字节缓冲,不然效率会低很多,缓冲的大小可适应实际来调整

第二段代码,不需要逐层 close(),这里的实现都是装饰模式,外层 close() 时会调用内层对象的 close() 方法。  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2008-10-06 19:37 duduli

想从基础学起,呵呵 @隔叶黄莺
  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2008-10-06 19:37 duduli

这个我也知道,但是并没过多的考虑。@隔叶黄莺
  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2008-10-06 19:56 隔叶黄莺

你都知道呀,就当我什么也没说。  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2008-10-06 20:22 duduli

也不能那样说啦,至少还是有缺陷的。谢了@隔叶黄莺
  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2008-12-09 16:37 fofo

行读取时貌似代码有问题
while((l = br.read()) != -1){
readoneline = br.readLine();
System.out.println(readoneline);
}


改为:
String readoneline;
while ((readoneline = br.readLine()) != null) {
System.out.println(readoneline);
}
可以正确读出  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2010-08-06 16:15 董泽榛

同意你的看法@fofo
  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2011-11-30 11:58 alexyang

行读取时貌似代码有问题
while((l = br.read()) != -1){
readoneline = br.readLine();
System.out.println(readoneline);
}


改为:
String readoneline;
while ((readoneline = br.readLine()) != null) {
System.out.println(readoneline);
}
可以正确读出
-------------------------------------
以上两种写法都有问题。
第一种会丢失每行第一个字符,
第二种会丢失第一行。  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取) 2011-11-30 12:12 alexyang

抱歉,上面弄错了,
while ((readoneline = br.readLine()) != null) {
readoneline = new String(readoneline.getBytes(), "UTF8");

之前写成了

while ((readoneline = br.readLine()) != null) {
readoneline = new String(br.readLine().getBytes(), "UTF8");

br.readLine()又读了一行。
  回复  更多评论   

# re: java文件读取。(单字节读取和按行读取读取)[未登录] 2012-05-14 16:01 Erica

就是啊,原本的错误会把每行第一个字符给去掉了@fofo
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

公告

welcome to my place.

常用链接

留言簿(5)

我参与的团队

随笔分类

随笔档案

新闻分类

石头JAVA摆地摊儿

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

@duduli