已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.t

package com.myh.test;

import org.omg.CORBA.WCharSeqHelper;

import java.io.*;
import java.net.Socket;
import java.util.Arrays;

/**
 * 已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”
 *              请编写程序读取数据内容,把数据排序后写入ss.txt中。
 *     bufferedreader和fileReader的区别
 *     FileReader不能一行一行的读,BufferReader可以一行一行的读
 *     BufferReader 可以一行一行读取效率高,因为减少了io的次数
 */
public class Test {
    public static void main(String[] args) throws IOException {
        FileReader fileReader = new FileReader("homework\\s.txt");//封装数据源
        FileWriter fileWriter = new FileWriter("homework\\ss.txt");//封装目的地
        System.out.println(fileReader.getClass());

        //读写数据
        int chars;//chars代表的是字符对应的ASSII码
        while((chars=fileReader.read())!=-1){
            System.out.println("chars:"+chars);
            fileWriter.write(chars);
        }
        //释放资源
        fileReader.close();
        fileWriter.close();

        //调用方法
        read();
//FileWriter 是OutputStreamWriter的直接子类,继承了父类的方法如下。
        new FileWriter("homework\\ss.txt").write("nihao123",
                1,
                "nihao".length());//为哈这个写不进去。
//       new FileOutputStream("homework\\ss.txt").write("nihao",0,4);//你好位置只能放byte[] 数组
//       new FileOutputStream("homework\\ss.txt").write("nihao".getBytes());//这样会在文件中写入nihao
    }

    public static void read() throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new FileReader("homework\\s.txt"));
        //读取文件的内容,存储到一个字符串中
        String s = bufferedReader.readLine();
        //把字符串转换成字符数组
        char[] chars = s.toCharArray();
        //对字符数组进行排序
        Arrays.sort(chars);
        //把字符数组转换成字符串
//        String s1 = chars.toString();
        String s1 = new String(chars);
        //把字符数组写入到ss.txt文件中
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("homework\\ss.txt"));
        bufferedWriter.write(s1);
        System.out.println("s1:"+s1);
        bufferedWriter.newLine();//写一行行分隔符
        //释放资源
        bufferedWriter.flush();
        bufferedReader.close();
        bufferedWriter.close();

    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你编写这个程序。以下是示例代码: ```java import java.io.*; import java.util.*; public class SortString { public static void main(String[] args) { String inputFile = "s.txt"; String outputFile = "ss.txt"; try { // 读取输入文件字符串 BufferedReader reader = new BufferedReader(new FileReader(inputFile)); String inputString = reader.readLine(); reader.close(); // 将字符串转换为字符数组并排序 char[] charArray = inputString.toCharArray(); Arrays.sort(charArray); // 将排序后的字符数组转换为字符串写入输出文件 BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile)); String outputString = new String(charArray); writer.write(outputString); writer.close(); System.out.println("排序后的字符串写入 " + outputFile); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上代码通过使用 `BufferedReader` 和 `FileReader` 读取输入文件字符串,然后使用 `toCharArray()` 方法将字符串转换为字符数组,并使用 `Arrays.sort()` 方法对字符数组进行排序。最后,使用 `BufferedWriter` 和 `FileWriter` 将排序后的字符数组转换为字符串写入输出文件。 你可以将输入文件命名为 `s.txt`,将输出文件命名为 `ss.txt`,并将这两个文件放在与上述代码相同的目录下。然后,你可以在命令行运行这个程序,它将会读取 `s.txt` 文件字符串并将排序后的字符串写入 `ss.txt` 文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值