Java读写文件遇到的问题(已解决)

转载 2005年05月30日 13:54:00
 

将一个十万行左右的文件按行分解为若干个一万行的文件,总是在最后一个文件中产生问题。例如一个源文件58089行,生成的前五个文件每个一万行没问题,但是最后一个文件却只有七千多行,且最后一行没有写完。程序运行没有任何异常抛出。代码如下:

import java.io.*;
import java.util.*;

public class FileParter {
    private ArrayList fileNames = new ArrayList();


    public FileParter(String sourceFileName) {
        File father = new File(sourceFileName);
        try {
            LineNumberReader r = new LineNumberReader(new FileReader(father));
            int count=1;//行计数器
            int fileNum=0;//目标文件序号(文件名)
            File f = new File(fileNum+".txt");//创建第一个目标文件
            BufferedWriter fw = new BufferedWriter(new FileWriter(f));//创建第一个目标文件读取器
            while(r.ready()){
                if(count==10001){
                    count=1;
                    fileNum++;
                    fw.close();
                    f = new File(fileNum+".txt");
                    this.fileNames.add(fileNum+".txt");
                    fw = new BufferedWriter(new FileWriter(f));
                }
                String tmpS = r.readLine();
                fw.write(tmpS,0,11);
                fw.newLine();
                //Debug:
                if(fileNum==5 && count>7000)
                    System.out.println(tmpS+"|"+count);
                count++;
            }
            System.out.println(r.getLineNumber());
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    //得到目标文件列表
    public String[] getFileNames(){
        int size = this.fileNames.size();
        String[] names = new String[size];
        for(int i=0;i<size;i++)
            names[i] = (String)this.fileNames.get(i);
        return names;
    }

    public static void main(String[] args) {
        FileParter fp = new FileParter("20050408001.txt");
        String[] names = fp.getFileNames();
        for(int i=0;i<names.length;i++)
            System.out.println(names[i]);
    }
}

希望大家指点错误出在哪里。

(PS:今天复查程序发现忘了关闭BufferedFileWriter 【close()】,导致缓冲区的数据最后无法写入文件中,感觉有点儿脸红^_^)

使用Java 随机读写文件RandomAccessFile类和String类遇到的问题

2016/1/19 21:35:23 1. String类:     以前可能没有注意到String类的一些编码的细节,这里简单说明一下     注意,常见的几个...

Oracle PL/SQL java读写文件权限问题得到解决

在ORACLE中PL/SQL利用java读取文件 参考了 http://hi.baidu.com/dkbhqynxajdgiyr/item/df55fff1b1eaa51aa62988c4   ...
  • lejuo
  • lejuo
  • 2012年11月27日 14:07
  • 7195

JAVA之NIO按行读写文件,解决中文乱码问题

做项目过程中遇到要解析300多M的TXT文件,并入库。所以用NIO实现按行读取并解决中文乱码。看了一些帖子感觉较为复杂,代码不够清晰。顾将自己写的代码奉上。如有不足请指正。 package NIO; ...

Java读写文件中文乱码问题折腾一个周末重要解决

在用Java编程的过程中遇到一个非常奇怪的问题,折腾了一两天,现在终于解决。 之前老是出现“馄斤拷”这样的乱码,从文件中读取来的字符,英文显示正常,而一遇到中文,全部乱码。 要不出现乱码,必须...

java读写文件中文乱码问题

作为学计算机的,写程序总会遇到很多头疼的东西,程序中的中文支持就是其中一个很令人无柰的问题。唉,有时只能感慨,谁叫计算机、语言等等都是老外发明的呢,别人的26个字母多easy,写程序、软件也就不会有这...
  • wj_myth
  • wj_myth
  • 2011年11月03日 09:52
  • 3985

java读写文件中文乱码问题

作为学计算机的,写程序总会遇到很多头疼的东西,程序中的中文支持就是其中一个很令人无柰的问题。唉,有时只能感慨,谁叫计算机、语言等等都是老外发明的呢,别人的26个字母多easy,写程序、软件也就不会有这...

Java读写文件的编码问题

在处理一些日志文件的时候,由于数据来源的服务端跟本地处理的编码不一致,会出现许多乱七八糟的问题,比如无缘无故在文件首多了一些字符,或者写入文件的时候少了一些内容,又或者乱码无法显示等。因此,在读写文件...

Java 读写文件的编码问题——读取是重点

编码设置在读写文件中尤为重要,若不显示指明读写时使用的编码,Java会使用平台的默认编码。 最常规最安装的设置编码的方式为:读取和写入时都采用读取文件的编码。例如,如下代码在读取test文件和写入...

VC++读写文件问题

  • 2007年12月14日 10:25
  • 288B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java读写文件遇到的问题(已解决)
举报原因:
原因补充:

(最多只允许输入30个字)