更高效的gcode插入文本编辑器

时间:2017-01-10 14:16:45

标签: java

我正在开发一个可以将值插入到文本文件中的程序,并且无法提出一种有效的方法。目标是在Z轴上的每次更改之前都有一个M220命令。该命令基于整个程序中有多少Z变化。我目前的想法是:

    Take the text file, and transfer it into an array
    Read through each character to see if there is a Z
    Count the total amount of Z's
    Start at the beginning of the array
    Create a new array that copies the first one
    If a Z value is found, insert a line before it with the M220 command
    Overwrite the text file with the new array

这对我来说效率非常低,特别是因为我要处理超过20Mb的txt文件。有没有明显更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以逐行读取文件,而无需将整个内容存储在内存中。

第一遍:逐行阅读文件并计算Z' s。

第二遍:逐行读取文件并将每行写入临时文件。在编写行之前,检查是否需要使用M220命令插入新行。如果是,则在当前行之前写下此行。

之后,您可以删除原始文件并将临时文件复制到原始文件名。