拆分文本文件

时间:2016-11-07 11:29:16

标签: java

我有以下格式的文本文件:

Token:A1
sometext
Token:A2
sometext
Token:A3

我想将此文件拆分为多个文件,例如 文件1包含

A1
sometext

文件2包含

A2
sometext

我对任何编程或脚本语言都不太了解,这个过程最好的方法是什么?我正在考虑使用Java来解决问题。

2 个答案:

答案 0 :(得分:1)

如果你想使用java,我会考虑将ScannerFilePrintWriter结合使用for循环和一些异常处理你会很高兴。

导入合适的库!

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

声明课程

public class someClass{

    public static void main(String [] args){

现在这里的东西开始变得有趣了。我们使用类File来创建一个新文件,该文件具有要作为参数传递的文件的名称。你可以把你想要的任何东西放在那里,无论它是文件的路径,还是文件名,如果它与你的代码在同一个目录中。

        File currentFile = new File("new.txt");
        if (currentFile.exists() && currentFile.canRead()){
            try{

接下来,我们通过新创建的File对象创建一个扫描程序 scan 。只要文件具有要扫描的新令牌,for循环就会继续。仅当扫描程序中的输入具有另一个标记时,.hasNext()才返回true。 PrintWriter编写并创建文件。我已经设置它将基于循环的迭代(0,1,2,3等)创建文件,但这可以很容易地改变。 (见new PrintWriter(i + ".txt". UTF-8);

            Scanner textContents = new Scanner(currentFile);
                for(int i = 0; textContents.hasNext(); i++){
                    PrintWriter writer = new PrintWriter(i + ".txt", "UTF-8");
                    writer.println(textContents.next());
                    writer.close();
                }

这些捕获声明非常重要!你的代码甚至在没有它们的情况下编译。如果出现错误,他们将确保您的代码不会崩溃。我把它们的内部留空了所以你可以做你认为合适的事情。

            } catch (FileNotFoundException e) {
                // do something
            }
            catch (UnsupportedEncodingException i){
                //do something
            }

        }
    }   
}

那几乎就是它!如果您有任何疑问,请务必发表评论!

答案 1 :(得分:0)

没有最好的方法,这取决于您的环境和实际需要。但是对于任何语言都要弄清楚你的基本算法,并尝试使用最好的数据结构。如果您使用的是Java,请考虑使用guava splitter并查看其实现。