自学内容网 自学内容网

File Java

1、 

import java.io.*;
//案例1 利用InputStreamReader类和BufferedReader类输入数据
//【案例描述】利用InputStreamReader类和BufferedReader类从键盘输入数据,如果数据格式无效的话,
// 可通过捕捉异常提示用户数据输入有误,必须重新输入。
//【技术要点】利用InputStreamReader类创建对象iin,其内容来自键盘(即System.in),利用其read()方法可读取单个字符。
// 利用BufferedReader类创建对象stdin,其内容来自iin,即把从键盘输入的数据保存到缓冲区,从而提高数据的高效读取。
// 利用其read()方法可读取单个字符,利用其readLine()方法可读取一行。

public class SystemIOExample4 {
    public static void main(String[] args) throws IOException {
        // 使用System.in构造InputStreamReader对象iin
        // 该对象用来从键盘读入一个单字节字符
        InputStreamReader iin = new InputStreamReader(System.in);
        // 利用iin对象构造BufferedReader对象stdin
        // 该对象用来从字符输入流中读取文本到缓冲区
        BufferedReader stdin = new BufferedReader(iin);
        System.out.print("请输入一个字符串: "); // 读取并输出字符串。
        System.out.println(stdin.readLine());
        boolean dataright = false;
        do {
            try {
                // 读取字符串并转换成double类型数据输出
                System.out.print("请输入一个浮点数: ");
                // 将字符串解析为带符号的double类型数据。如果
                // 数据无效,则产生一个NumberFormatException异常
                double numberx = Double.parseDouble(stdin.readLine());
                System.out.println(numberx);
                dataright = false;
            } catch (NumberFormatException e) {
                System.out.println("数据无效,请重新输入!");
                dataright = true;
            }
        } while (dataright);
    }
}

2、

import java.io.*;
//案例2  利用字节输入/输出流读写文件
//【案例描述】
// 使用文件字节输入/输出流类将数值0~10写入文件test.txt,然后再把它们从文件中读取出来。
//【技术要点】通过执行FileOutputStream out = new FileOutputStream("d:\\test.txt");
// 语句创建FileOutputStream对象时,系统会自动在D盘根目录下创建一个名为text.txt的空文件。
// 如果该文件已存在,系统会先删除原文件,再创建新文件。
// 如果用户希望打开一个文件,然后向其中追加内容,
// 应执行FileOutputStream out = new FileOutputStream("d:\\test.txt", true);语句。
// 如果此时目标文件已存在,则打开它;否则,将新建文件。
public class FileIOExample1 {
    public static void main(String[] args) throws IOException {
        // 创建文件输出流对象,新建并打开文件d:\test.txt
        FileOutputStream out = new FileOutputStream("d:\\test.txt");
        for (int i = 0; i <= 10; i++) {
            out.write(i); // 向文件中写数据
        }
        out.close(); // 关闭输出流,即关闭打开的文件
        // 创建文件输入流对象,打开文件d:\test.txt
        FileInputStream in = new FileInputStream("d:\\test.txt");
        int value;
        while ((value = in.read()) != -1) { // 循环读取文件中的数据
            System.out.print(value + " "); // 输出文件中的数据
        }
        in.close(); // 关闭输入流,即关闭打开的文件
    }
}

3、

import java.io.*;
//案例3  利用字符输入/输出流读写文件
//【案例描述】使用文件字符输入/输出流类将键盘输入的字符写入文件test.txt
// 以空行或按【Ctrl+Z】组合键结束数据输入,然后再把它们从文件中读取出来。
//【技术要点】使用InputStreamReader iin = new InputStreamReader(System.in);
// 语句和BufferedReader stdin = new BufferedReader(iin);语句创建stdin对象后,可利用stdin对象的readLine()方法读取一行输入的内容。其中:
// 如果当前行未输入内容,直接按回车键,此时输入字符串的 length()为0。但是,此时输入的字符串既不是空串“”,也不是null。
// 如果按【Ctrl+Z】组合键,此时系统会忽略该行输入的内容,读取的字符串为null。
public class FileIOExample2 {
    public static void readFile() throws IOException {
        // 创建文件字符输入流对象,即打开文件
        FileReader fr = new FileReader("D:\\test.txt");
        char data[] = new char[1024]; // 定义一个字符数组
        // 将数据读入字符数组data内,num为字符个数
        int num = fr.read(data);
        // 将字符数组转换成字符串
        String str = new String(data, 0, num);
        System.out.println(str);
        fr.close(); // 关闭文件
    }
    public static void writeFile(String s) throws IOException {
        // 创建文件字符输出流对象,即新建或打开文件
        FileWriter fw = new FileWriter("d:\\test.txt", true);
        fw.write(s); // 将字符串s写入文件
        fw.close(); // 关闭文件
    }
    public static void main(String[] args) throws IOException {
        // 创建InputStreamReader对象,其内容来自键盘
        InputStreamReader iin = new InputStreamReader(System.in);
        // 基于InputStreamReader对象创建BufferedReader对象
        BufferedReader stdin = new BufferedReader(iin);
        // s1用于临时保存读取的当前行内容,S2用来存放最终读取的字符串
        String s1 = "", s2 = "";
        do {// 循环读取数据,
            s1 = stdin.readLine(); // 读取一行
            System.out.println(s1);
            // 当用户按Ctrl+Z组合键时,readLine()方法返回的是一个null
            // 同时,本行输入的内容作废。因此,此时应退出数据输入循环
            if (s1 == null) {break;}
            // 如果在某行直接按回车,不输入任何内容,此时用readLine()方法
            // 读取的字符串的length()为0,结束数据输入。反之,如果length()
            // 不为0,表示该行已输入字符串
            if (s1.length() != 0) { // 如果已输入字符串
                s1 = s1 + '\r' + '\n';    // 为字符串末尾增加回车符和换行符
                s2 = s2 + s1;    // 将新字符串增加到目标字符串中
            }
        } while (s1.length() != 0);
        writeFile(s2);        // 将读取的内容写文件readFile(); // 读取文件内容
    }
}

4、

import java.io.*;
import java.util.Scanner;

//编写一个程序,将输入的小写字符串转换成大写,然后保存到文件“a.txt”中

public class FileaA {
    public static void main(String[] args) {
        // 创建Scanner对象以从控制台读取输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入字符串
        System.out.println("请输入一个小写字符串:");
        String input = scanner.nextLine();

        // 将字符串转换为大写
        String upperCaseString = input.toUpperCase();

        // 定义要保存的文件名
        String fileName = "C:\\Users\\Desktop\\a.txt";

        // 使用FileWriter和BufferedWriter将字符串写入文件
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
            writer.write(upperCaseString);
            System.out.println("字符串已成功转换为大写并保存到文件 " + fileName + " 中。");
        } catch (IOException e) {
            System.err.println("写入文件时发生错误: " + e.getMessage());
        }

        // 关闭Scanner对象
        scanner.close();
    }
}

5、

import java.io.*;
import java.util.Random;
//编写一个程序,如果文件text.txt不存在,以该名创建一个文件。
//如果该文件存在,用文件输入/输出流将100个随机生成的整数写入文件中,整数之间用空格分隔。
public class Filecunzaifou {
    public static void main(String[] args) {
        // 定义文件名
        String fileName = "D:\\text.txt";
        // 检查文件是否存在
        File file = new File(fileName);
        boolean fileExists = file.exists();
        // 创建Random对象以生成随机整数
        Random random = new Random();
        // 准备写入内容
        StringBuilder content = new StringBuilder();
        for (int i = 0; i < 100; i++) {
            int randomInt = random.nextInt(); // 生成一个随机整数
            content.append(randomInt).append(" "); // 将整数添加到StringBuilder中,并在其后添加一个空格
            // 可选:为了可读性,每添加10个整数后添加一个换行符(不是必需的)
            if ((i + 1) % 10 == 0) {
                content.append("\n");
            }
        }
        // 使用try-with-resources语句来确保文件在写入后正确关闭
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(file, true))) { // 使用true参数以追加模式写入
            // 如果文件之前不存在,现在已经被创建;如果之前存在,则内容将被追加。
            writer.write(content.toString()); // 将StringBuilder中的内容写入文件
            // 输出提示信息
            if (!fileExists) {
                System.out.println("文件 " + fileName + " 已创建,并写入了100个随机整数。");
            } else {
                System.out.println("100个随机整数已追加到文件 " + fileName + " 中。");
            }
        } catch (IOException e) {
            // 捕获并处理IO异常
            System.err.println("写入文件时发生错误: " + e.getMessage());
        }
    }
}


原文地址:https://blog.csdn.net/2301_77127201/article/details/144065194

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!