import java.io.*; import java.util.Scanner; public class mynot{ public static void main(String args[]){ File file= new File("wenzhang.txt"); if(file.canRead()){System.out.println("文件存在");} else {System.out.println("文件不存在");} System.out.println("输入查询的字"); try{ Scanner search=new Scanner(System.in);//读入用户的输入 search.close(); String searchStr=search.nextLine(); FileReader medium=new FileReader(file); BufferedReader sr=new BufferedReader(medium); int sum=0; for (;sr.readLine()!=null;)//判断每行中有多少个符合条件的 { String mod=sr.readLine();//临时存放读入内容 if(mod.contains(searchStr)){ int c=0; for (;c!=-1;sum++){ c=mod.indexOf(searchStr); mod = mod.substring(c+searchStr.length()); System.out.println("第"+sum+"次出现"); } } } medium.close(); sr.close(); BufferedWriter wr= new BufferedWriter(new FileWriter(file , true)); wr.write((char)(sum)); } catch(Exception e){} }}
时间: 2024-04-25 09:26:36 浏览: 45
这是一个 Java 的程序,主要实现的功能是读取指定的文本文件,并在文件中查询指定的字符或字符串,并统计该字符或字符串在文件中出现的次数,最后将出现次数写入到文件中。
程序中的关键代码包括:
1. 使用 File 类创建指向指定文件的对象。
2. 使用 Scanner 类读取用户输入的查询字符或字符串。
3. 使用 FileReader 类和 BufferedReader 类读取文件内容,并使用 String 类的 contains() 方法判断每行中是否包含查询字符或字符串。
4. 使用 String 类的 indexOf() 方法和 substring() 方法,统计查询字符或字符串在每行中出现的次数。
5. 使用 BufferedWriter 类和 FileWriter 类将查询字符或字符串在文件中出现的次数写入到文件中。
需要注意的是,程序中存在一些问题,例如 Scanner 对象在使用前应该先关闭,而在程序中却是先关闭再使用;写入文件的内容应该是数字,而程序中使用了 char 类型进行强制转换。此外,程序中的注释也需要做一些修改和完善。
相关问题
import java.io.*; import java.util.Arrays; import java.util.Scanner; public class FileTest { public static void main(String[] args) throws IOException { // 接收给定的一行字符串 Scanner scanner = new Scanner(System.in); String line = scanner.nextLine();
// 创建文件对象,并检查文件是否存在 File file = new File(line); if (!file.exists()) { System.out.println("文件不存在!"); return; } // 读取文件内容 BufferedReader reader = new BufferedReader(new FileReader(file)); String content = ""; String temp; while ((temp = reader.readLine()) != null) { content += temp + "\n"; } // 关闭文件读取器 reader.close(); // 输出文件内容 System.out.println("文件内容:\n" + content); } }
这段代码是一个读取文件并输出文件内容的Java程序。首先,通过Scanner接收用户输入的文件路径,然后判断文件是否存在。如果文件不存在,则输出提示信息并结束程序。如果文件存在,则创建文件读取器并读取文件内容,将读取到的内容存储在一个字符串变量中。最后,关闭文件读取器并输出文件内容。
package XXLChess; //import org.reflections.Reflections; //import org.reflections.scanners.Scanners; import processing.core.PApplet; import processing.core.PImage; import processing.data.JSONObject; import processing.data.JSONArray; import processing.core.PFont; import processing.event.MouseEvent; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.awt.Font; import java.io.*; import java.util.*; public class App extends PApplet { public static final int SPRITESIZE = 480; public static final int CELLSIZE = 48; public static final int SIDEBAR = 120; public static final int BOARD_WIDTH = 14; public static int WIDTH = CELLSIZE*BOARD_WIDTH+SIDEBAR; public static int HEIGHT = BOARD_WIDTH*CELLSIZE; public static final int FPS = 60; public String configPath; public App() { this.configPath = "config.json"; } /** * Initialise the setting of the window size. */ public void settings() { size(WIDTH, HEIGHT); } /** * Load all resources such as images. Initialise the elements such as the player, enemies and map elements. */ public void setup() { frameRate(FPS); // Load images during setup // PImage spr = loadImage("src/main/resources/XXLChess/"+...); // load config JSONObject conf = loadJSONObject(new File(this.configPath)); } /** * Receive key pressed signal from the keyboard. */ public void keyPressed(){ } /** * Receive key released signal from the keyboard. */ public void keyReleased(){ } @Override public void mouseClicked(MouseEvent e) { } @Override public void mouseDragged(MouseEvent e) { } /** * Draw all elements in the game by current frame. */ public void draw() { } // Add any additional methods or attributes you want. Please put classes in different files. public static void main(String[] args) { PApplet.main("XXLChess.App"); } }
这是一个 Java 程序,使用 Processing 库进行可视化。它创建了一个名为 App 的类,该类具有以下属性:
- SPRITESIZE:棋子的尺寸
- CELLSIZE:棋盘格子的尺寸
- SIDEBAR:侧边栏的宽度
- BOARD_WIDTH:棋盘的宽度
- WIDTH:窗口的宽度
- HEIGHT:窗口的高度
- FPS:帧率
它还包含以下方法:
- settings():初始化窗口大小
- setup():加载资源和配置文件等
- keyPressed():接收键盘按下信号
- keyReleased():接收键盘释放信号
- mouseClicked():接收鼠标点击信号
- mouseDragged():接收鼠标拖动信号
- draw():绘制游戏元素
最后,它包含一个 main 方法,用于启动整个程序。
阅读全文