从文件中读取大(450000+ 个字符)字符串
reading large (450000+ chars) strings from file
所以,我正在处理遗留系统的集成。它产生一个大文本文件,在一个大字符串中打印指令。真的很大的字符串。我们说的是 450 000 个字符或更多。
我需要将其分成几行,每条指令一行。每条指令由一个五位代码分隔,其中代码包含下一条指令中的字符数。
我的解决方案是编写一个 java 小程序,该程序使用缓冲 reader 将文件读入一个字符串,随后将其拆分为多行,并保存到一个新文件中。
关于处理这个问题有什么建议吗?缓冲的 reader 能否将其读入常规字符串?我做错了吗?
是的。使用缓冲 reader。
算出指令的最大大小并创建该大小的 char[]。然后做类似的事情:
reader.read(charArray, 0, 5);
// parse the header
reader.read(charArray, 0, lengthOfInstruction);
String instruction = new String(charArray, 0, lengthOfInstruction);
// do stuff with the instruction
你把它放在一个 while 循环中,该循环在文件结束时终止。
这可能不是最 运行 的时间效率,但它可能足够好并且足够简单以开始工作。
所以,我正在处理遗留系统的集成。它产生一个大文本文件,在一个大字符串中打印指令。真的很大的字符串。我们说的是 450 000 个字符或更多。
我需要将其分成几行,每条指令一行。每条指令由一个五位代码分隔,其中代码包含下一条指令中的字符数。
我的解决方案是编写一个 java 小程序,该程序使用缓冲 reader 将文件读入一个字符串,随后将其拆分为多行,并保存到一个新文件中。
关于处理这个问题有什么建议吗?缓冲的 reader 能否将其读入常规字符串?我做错了吗?
是的。使用缓冲 reader。
算出指令的最大大小并创建该大小的 char[]。然后做类似的事情:
reader.read(charArray, 0, 5);
// parse the header
reader.read(charArray, 0, lengthOfInstruction);
String instruction = new String(charArray, 0, lengthOfInstruction);
// do stuff with the instruction
你把它放在一个 while 循环中,该循环在文件结束时终止。
这可能不是最 运行 的时间效率,但它可能足够好并且足够简单以开始工作。