【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();}// 关闭bufferedReaderbufferedReader.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.mzph.cn/news/677133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3跨组件(多组件)通信:事件总线【Event Bus】

★推荐方案:使用 events npm库; 可用范围:vue、react、angular等任何框架都可使用;且使用方式完全一致; 本文仅介绍、讲解对web页面端项目的常用API;通过events实现事件总线功能; event库概述&a…

交易之路:从无知到有知的五个阶段

交易是易学的,它的操作很直观,也是复杂的,它的价格很玄妙。在金融行业日益壮大的背景下,新人辈出,而弱者则逐渐退出。市场生态在不断变化,我们每个人在交易之路上所经历的种种,既清晰可见又模糊…

Flask实现异步调用sqlalchemy的模型类

事情是这样的,我这边需要在一次请求里面,搞一个异步不阻碍的任务,来执行耗时的操作。 一开始,我准备写的代码是这样的: from flask import Flask import time from concurrent.futures import ThreadPoolExecutorexec…

基于opencv-python模板匹配的银行卡号识别(附源码)

目录 介绍 数字模板处理 银行卡图片处理 导入数字模板 模板匹配及结果 介绍 我们有若干个银行卡图片和一个数字模板图片,如下图 我们的目的就是通过对银行卡图片进行一系列图像操作使得我们可以用这个数字模板检测出银行卡号。 数字模板处理 首先我们先对数…

WPF DispatcherTimer用法

System.Windows.Threading.DispatcherTimer 类主要用于WPF应用程序中进行周期性任务调度,并且保证这些任务在UI线程上执行。 这对于需要更新界面或与UI元素交互的定时操作非常有用,因为WPF的所有UI操作都必须在主线程(即Dispatcher线程&…

【开源】SpringBoot框架开发桃花峪滑雪场租赁系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设计3.1 教练表3.2 教练聘请表3.3 押金规则表3.4 器材表3.5 滑雪场表3.7 售票表3.8 器材损坏表 四、系统展示五、核心代码5.1 查询教练5.2 教练聘请5.3 查询滑雪场5.4 滑雪场预定5.5 新…

实践:微服务版本升级步骤以及maven仓库相关概念

进行微服务开发的时候&#xff0c;上层服务依赖于下层的服务的api&#xff0c;比如适配属于上层服务&#xff0c;用户属于下层服务。 例子: 上层服务 <!--订单管理微服务api依赖--> <dependency><groupId>com.jn.server</groupId><artifactId>…

One time pad 图像加密MATLAB程序

使用一次加密的形式对图像进行加密。 采用异或的方式实现。 加密、解密结果如下: 程序代码如下: % 读取原始图像并显示 originalImage = imread(lena256.bmp); % 更换为你的图像文件名 subplot(1,3,1),imshow(originalImage); title(Original Image);% 生成与图像相同大…

低代码市场的未来展望:趋势、机遇与挑战

根据 Zoho 的一项新研究&#xff0c;低代码市场正处于成为主流的风口浪尖。该报告对全球 800 多名 IT 和业务领导者进行了调查&#xff0c;确定了推动其采用的几个因素。其中最重要的是提高应用程序的开发速度。 这一发现对企业领导者来说应该不足为奇。 客户、合作伙伴和员工…

SQL持续更新中

问: 什么是SQL&#xff1f; 答: Structured Query Language 结构化查询语言&#xff1b;其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方&#xff0c;称为 方言。 通用语法 SQL 语句可以单行或多行书写&#xff0c;以分号结尾。可使用空格…

2.7 Binance_interface APP 现货交易-限价单开仓

Binance_interface APP 现货交易-限价单开仓 Github地址PyTed量化交易研究院 目录 Binance_interface APP 现货交易-限价单开仓1. APP 现货交易-限价单开仓函数总览2. 模型实例化3. 同步 非堵塞 限价开仓&#xff08;购买&#xff09;4. 同步 堵塞 限价开仓&#xff08;购买&a…

linux进程(进程状态)

目录 前言&#xff1a; 正文&#xff1a; 1.R运行状态&#xff08;running&#xff09; 2.睡眠状态&#xff08;sleeping&#xff09; 3.D磁盘休眠状态&#xff08;Disk sleep&#xff09; 4停止状态&#xff08;stop&#xff09; 5僵尸状态&#xff08;Z&#xff09; …

从零开始学HCIA之NAT基本工作原理

1、NAT设计之初的目的是解决IP地址不足的问题&#xff0c;慢慢地其作用发展到隐藏内部地址、实现服务器负载均衡、完成端口地址转换等功能。 2、NAT完成将IP报文报头中的IP地址转换为另一个IP地址的过程&#xff0c;主要用于实现内部网络访问外部网络的功能。 3、NAT功能一般…

C#系列-C#访问FTP服务器实现上传下载(8)

FTP Server是什么&#xff1f; FTP Server&#xff08;File Transfer Protocol Server&#xff09;&#xff0c;即文件传输协议服务器&#xff0c;是在互联网上提供文件存储和访问服务的计算机。它依照FTP协议提供服务&#xff0c;专门用来传输文件。 FTP Server允许不同的客…

攻防世界 CTF Web方向 引导模式-难度1 —— 11-20题 wp精讲

PHP2 题目描述: 暂无 根据dirsearch的结果&#xff0c;只有index.php存在&#xff0c;里面也什么都没有 index.phps存在源码泄露&#xff0c;访问index.phps 由获取的代码可知&#xff0c;需要url解码(urldecode )后验证id为admin则通过 网页工具不能直接对字母进行url编码 …

SolidWorks学习笔记——入门知识2

目录 建出第一个模型 1、建立草图 2、选取中心线 3、草图绘制 4、拉伸 特征的显示与隐藏 改变特征名称 5、外观 6、渲染 建出第一个模型 1、建立草图 图1 建立草图 按需要选择基准面。 2、选取中心线 图2 选取中心线 3、草图绘制 以对称图形举例&#xff0c;先画出…

函数高级(C++)

师从黑马程序员 函数默认参数 在C中&#xff0c;函数的形参列表中的形参是可以有默认值的 语法&#xff1a;返回值类型 函数名 &#xff08;参数默认值 {}&#xff09; #include <iostream> using namespace std;//函数默认参数//如果我们自己传入数据&#xff0c;…

点云从入门到精通技术详解100篇-非结构化道路下无人平台路径规划与运动控制

目录 前言 路径规划方法研究现状 传统规划算法 智能规划算法 规划方法比较

vue 用的watch 的说明及例子

在 Vue.js 中&#xff0c;watch 是一个用于观察和响应 Vue 实例上数据变化的对象。当需要在数据变化时执行异步或开销较大的操作时&#xff0c;watch 是非常有用的。 说明 watch 对象包含一系列键值对&#xff0c;其中键是需要观察的响应式数据属性&#xff0c;值是一个处理函…

股票均线的使用方法和实战技术,看涨看空的均线形态与案例教学

一、教程描述 本套教程讲解了14种均线的特殊形态&#xff0c;通过直观图形以及大量案例的教学&#xff0c;将深奥、繁琐的均线变得生动与具体&#xff0c;广大投资者在认真学习以后&#xff0c;可以学会均线的使用方法&#xff0c;掌握最强的均线应用实战技术。本套教程不仅适…