Java中如何从文件读取输入并在另外的文件中输出

在今天的每日java时,再次碰到从文件中读取输入并输出到文件中的题目,于是便索性了解了一下这种输入输出方式,本博客以作记录。

具体题目如下

【问题描述】

编写程序将一个指定文件中给定字符串删除。假设给定的字符串长度不超过20,文件中每行的字符数不超过100。要求:给定的字符串大小写无关。

【输入形式】

给定文件名为filein.txt。从标准输入中输入要删除的字符串(不含空格)。

【输出形式】

将删除后的结果输出到文件fileout.txt中。

【样例输入】

从标准输入中输入要删除的字符串:

in

文件filein.txt的内容为:

#include <stdio.h>

void main()

{

    FILE * IN;

    if((IN=fopen("in.txt","r"))==NULL)

    {

       printf("Can&rsquo;t open in.txt!");

       return;

    }

    fclose(IN);

}

【样例输出】

文件fileout.txt的内容应为:

#clude <stdio.h>

void ma()

{

    FILE * ;

    if((=fopen(".txt","r"))==NULL)

    {

       prtf("Can&rsquo;t open .txt!");

       return;

    }

    fclose();

}

【样例说明】

输入的要删除的字符串为in,即将文件filein.txt中所有出现的in字符串(包括iN、In、IN字符串)删除,然后将删除后的文件内容输出保存在文件fileout.txt中。

【评分标准】

该题要求得到删除给定字符串后的文件内容。

题目要求很明显,删除实现不难。代码如下:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class everydayjava {
    public static void main(String[] args) {
        try {
            // 从标准输入中读取要删除的字符串
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

            String stringToRemove = reader.readLine();
            reader.close();

            // 打开文件filein.txt进行读取
            BufferedReader fileReader = new BufferedReader(new FileReader("filein.txt"));
            // 创建文件fileout.txt进行写入
            BufferedWriter fileWriter = new BufferedWriter(new FileWriter("fileout.txt"));

            String line;
            while ((line = fileReader.readLine()) != null) {
                // 不区分大小写删除指定字符串
                line = line.replaceAll("(?i)" + stringToRemove, "");
                fileWriter.write(line);
                fileWriter.newLine();
            }

            fileReader.close();
            fileWriter.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

下面便讲到所导入的java.io包中的每一个类的作用

读取/写入文本(BufferedReaderBufferedWriter类)

在java.io包中,import java.io.BufferedReader和import java.io.BufferedWriter;用于高效的读取和写入文本,它提供了缓冲区来提高写入性能,在有大量文本时作用明显。

导入/导出(FileReaderFileWriter类)

import java.io.FileReader和import java.io.FileWriter;用于引入文件中的数据并将字符数据写入文件中。

处理异常(IOException类)

使用try-catch块

用于处理输入/输出操作可能出现的异常的类。在文件操作中,可能会出现各种I/O相关的异常,例如文件不存在、权限问题等,而IOException类用于捕获和处理这些异常。

读取用户语句(InputStreamReader类)

InputStreamReader通常用于从输入流(例如标准输入流System.in)中读取字符数据。

如有错误,欢迎大佬们指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XforeverZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值