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)!