我有以下格式的文本文件:
Token:A1
sometext
Token:A2
sometext
Token:A3
我想将此文件拆分为多个文件,例如 文件1包含
A1
sometext
文件2包含
A2
sometext
我对任何编程或脚本语言都不太了解,这个过程最好的方法是什么?我正在考虑使用Java来解决问题。
答案 0 :(得分:1)
如果你想使用java,我会考虑将Scanner
与File
和PrintWriter
结合使用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并查看其实现。