当前位置: 首页 > article >正文

【java】简单的Java语言控制台程序

一、用于文本文件处理的Java语言控制台程序示例

以下是一份简单的Java语言控制台程序示例,用于文本文件的处理。本例中我们将会创建一个程序,它会读取一个文本文件,显示其内容,并且对内容进行计数,然后将结果输出到控制台。

首先,需要在Java开发环境中创建一个新的Java类。下面是一个基本示例代码:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class TextFileProcessor {

    public static void main(String[] args) {

        String filePath = "TextFileProcessor.java"; // 将此处替换为你的文本文件路径

        try {
            // 创建FileReader和BufferedReader来读取文件
            FileReader fileReader = new FileReader(filePath);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            
            String line;
            int lineCount = 0;
            int wordCount = 0;
            int charCount = 0;

            // 逐行读取文件内容,直到读取完毕
            while ((line = bufferedReader.readLine()) != null) {
                // 显示文件内容
                System.out.println(line);

                // 计数
                lineCount++;
                String[] words = line.split(" ");
                wordCount += words.length;
                charCount += line.length();
            }

            // 关闭bufferedReader
            bufferedReader.close();

            // 输出计数结果
            System.out.println("\n文件总计有 " + lineCount + " 行。");
            System.out.println("文件总计有 " + wordCount + " 个单词。");
            System.out.println("文件总计有 " + charCount + " 个字符。");
            
        } catch (IOException e) {
            System.out.println("发生错误读取文件: " + e.getMessage());
        }
    }
}

如何工作:

1. FileReader用于打开文件以进行读取。
2. BufferedReader则用于提高读取效率,它包裹着`FileReader`。
3. 在一个循环中,可以调用`readLine`方法逐行读取文件。
4. 对于读取到的每一行,我们打印它,并对行数、单词数和字符数进行计数。
5. 读取完成后关闭`BufferedReader`。
6. 打印出行数、单词数和字符数的统计结果。
注意,上面的程序需要进行错误处理。这里我们使用了一个简单的try-catch块来捕获和处理`IOException`。
这个例子可以作为处理文本文件的起点,可以根据需要扩展这个程序来进行更复杂的文件处理,比如统计特定单词的频率、替换特定文本或者实现文件的写入功能。

二、运行示例

要运行上面给出的Java程序,需要执行以下步骤:

1. 编写代码

   首先,将上面的代码复制粘贴到文本编辑器中,并保存为一个以`.java`扩展名结尾的文件。假设我们将其保存为`TextFileProcessor.java`。

2. 确保Java环境已安装

   需要在计算机上安装Java开发工具包(JDK),才能编译和运行Java程序。Documentation

3. 编译Java程序

   打开命令行工具(在Windows中是`cmd`,在macOS和Linux中是`Terminal`),然后切换到包含`TextFileProcessor.java`文件的目录。例如,如果该文件在`D:\JavaProjects\`目录中,需要键入:

cd D:\JavaProjects\

   然后,编译Java程序,使用以下命令:

javac TextFileProcessor.java

   如果代码没有错误,这个命令将会生成一个名为`TextFileProcessor.class`的字节码文件,这是Java虚拟机(JVM)可以执行的文件格式。

4. 运行Java程序

   在同一个命令行窗口中,现在可以运行编译过的程序了:

java TextFileProcessor

程序将会读取文件内容并显示在控制台上。
如果编译或运行时遇到任何问题,请检查以下几点:
- 是否已将Java添加到了系统环境变量中。
- 是否在正确的路径下执行命令。
- Java源文件名是否与public class的名称一致。
- 文件路径是否准确无误(不存在路径错误,权限问题等)。
遵循这些步骤,应该能够顺利编译和运行Java程序。   

三、java和javac

java 和 javac 是两个不同的命令,它们各自在 Java 开发中扮演着不同的角色。

java 命令

  • java 命令用于运行已经编译好的 Java 程序,也就是运行 .class 文件。
  • 当使用 java 命令来运行一个程序时,实际上是在告诉 Java 虚拟机 (JVM) 去加载和运行指定的类。
  • 例如,如果有一个名为 HelloWorld 的类,并且该类有一个 main 方法,可以使用 java HelloWorld 命令来运行它。

javac 命令

  • javac 命令用于编译 Java 源代码文件,也就是 .java 文件,生成对应的 .class 文件。
  • 编译是将人类可读的源代码转换为机器可执行的字节码的过程。
  • 例如,如果有一个名为 HelloWorld.java 的源代码文件,可以使用 javac HelloWorld.java 命令来编译它,生成 HelloWorld.class 文件。

java 命令是用来执行已经编译好的 Java 程序,而 javac 命令是用来将 Java 源代码编译成可执行的字节码。因此,在 Java 开发过程中,通常会先使用 javac 命令来编译你的源代码,然后再使用 java 命令来运行编译后的程序。

值得注意的是,javac 命令实际上是 Java 开发工具包 (JDK) 的一部分,而 java 命令则是 Java 运行时环境 (JRE) 的一部分。JDK 包含了用于开发和编译 Java 程序的工具,而 JRE 则只包含了运行 Java 程序所需的最小环境。因此,如果只安装了 JRE 而没有安装 JDK,那么将无法使用 javac 命令来编译 Java 程序。


http://www.kler.cn/a/234219.html

相关文章:

  • Java算法OJ(7)随机快速排序
  • LlamaIndex
  • 【数学二】线性代数-线性方程组-齐次线性方程组、非齐次线性方程组
  • Python提取PDF和DOCX中的文本、图片和表格
  • Redis - 集群(Cluster)
  • 【云计算解决方案面试整理】1-2云计算基础概念及云计算技术原理
  • golang select两个channel性能稳定,三个channel时性能会发生抖动,为什么?
  • (c语言版)数组去重和排序 题目描述: 给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低
  • 设计模式-行为型模式(下)
  • 七、热身仪式(Warm-Up Rituals)
  • 《杨绛传:生活不易,保持优雅》读书摘录
  • Github 2024-02-10 开源项目日报Top10
  • Flink面试准备
  • 代码随想录算法训练营第三十三天丨[重看] 最大子数组、1143. 最长公共子序列/15.4 最长公共子序列
  • Android 识别车牌信息
  • Rust 格式化输出
  • TestNG基础教程
  • fast.ai 机器学习笔记(二)
  • JVM-类加载器 双亲委派机制
  • 项目02《游戏-13-开发》Unity3D
  • 在 Windows上恢复删除照片的 4 种有效方法
  • 初步探索Pyglet库:打造轻量级多媒体与游戏开发利器
  • 多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测
  • hexo 博客搭建以及踩雷总结
  • 面向对象编程:理解其核心概念与应用
  • linux上部署ftp服务