📜  程序打印最后10行(1)

📅  最后修改于: 2023-12-03 14:56:36.274000             🧑  作者: Mango

程序打印最后10行

在我们日常的开发工作中,经常需要查看日志、输出信息等,而有些情况下,我们只需要查看最后几行的内容,那么怎样通过程序实现呢?本篇文章将为大家介绍如何用不同的编程语言实现打印最后10行的功能。

Python
with open('filename.txt') as f:
    lines = f.readlines()[-10:]
    for line in lines:
        print(line)

上述Python代码实现了将filename.txt文件中的最后10行输出到控制台的操作。即打开文件,读取全部内容,取倒数10行,循环输出。这里可以修改文件名,路径等参数进行适当的调整,实现在不同情况下的输出。

Java
File file = new File("filename.txt");
RandomAccessFile randomAccessFile = new RandomAccessFile(file,"r");
long fileLength = file.length();
long pointer = fileLength;
int count = 0;
byte[] c = new byte[1];
while(pointer > 0){
    randomAccessFile.seek(--pointer);
    randomAccessFile.read(c);
    if(c[0] == '\n') {
        count ++;
        if(count == 10)
            break;
    }
}
String line;
while((line = randomAccessFile.readLine()) != null) {
    System.out.println(line);
}

上述Java代码实现了将filename.txt文件中的最后10行输出到控制台的操作。这里通过使用RandomAccessFile类可以对文件进行随机读取,从而快速查找到倒数10行的位置。同时Java也提供了readLine()方法,用于按行读取文件内容。需要注意文件编码等问题,如非UTF-8编码,需要进行适当的转码等操作。

C++
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main() {
    string filename = "filename.txt";
    ifstream f(filename);
    vector<string> lines;
    string line;
    int count = 0;
    while (getline(f, line)) {
        lines.push_back(line);
        count++;
        if (count > 10) {
            lines.erase(lines.begin());
        }
    }
    f.close();
    for (auto i : lines) {
        cout << i << endl;
    }
    return 0;
}

上述C++代码实现了将filename.txt文件中的最后10行输出到控制台的操作。这里通过使用vector容器来存储文件的各行内容,当读取到11行时,删除第一行,从而保证只存储最后10行的内容。需要注意文件读取等问题,如文件所在路径等。

总的来说,以上三种语言实现的原理都类似,即读取文件内容,取倒数10行,循环输出。不同的地方在于语言本身特性、文件读取方式等。通过这些代码,相信读者已经能够熟练实现打印最后10行的功能了。