InputStreamReader in= new InputStreamReader(new FileReader("1.dat"));
时间: 2023-10-25 16:15:32 浏览: 81
这段代码也可以创建一个InputStreamReader对象,不过它使用了FileReader来读取文件。FileReader已经将文件字节流转换为字符流,因此不需要再创建一个InputStreamReader对象。因此,可以将代码简化为以下形式:
```
Reader reader = new FileReader("1.dat");
```
这里的"1.dat"是指待读取的文件名,可以根据实际情况进行修改。这段代码将文件读取为字符流,并创建了一个FileReader对象。你可以通过reader对象读取文件中的内容。
相关问题
编程构建一个Student类,并在main函数中创建5个对象(对象信息如输入样例所示),其中每个对象的数据包括学号num、姓名name、年龄age以及数学maths、英语english、语文chinese三门功课的分数,然后求出每个人的平均分数ave,将学号、姓名和平均分数输出到磁盘文件STUD.DAT中,最后从STUD.DAT文件中读出这些数据,并显示在屏幕上。 输入格式: 5个学生的数据(学号、姓名、年龄以及数学、英语、语文三门功课的分数)。 输出格式: 从STUD.DAT文件中读出学号、姓名和平均分数。
以下是编写的代码:
```java
import java.io.*;
class Student {
String num;
String name;
int age;
int maths;
int english;
int chinese;
float ave;
public void average() {
ave = (maths + english + chinese) / 3.0f;
}
}
public class Main {
public static void main(String[] args) throws IOException {
Student[] students = new Student[5];
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter("STUD.DAT"));
for (int i = 0; i < 5; i++) {
students[i] = new Student();
String[] info = br.readLine().split(" ");
students[i].num = info[0];
students[i].name = info[1];
students[i].age = Integer.parseInt(info[2]);
students[i].maths = Integer.parseInt(info[3]);
students[i].english = Integer.parseInt(info[4]);
students[i].chinese = Integer.parseInt(info[5]);
students[i].average();
bw.write(students[i].num + " " + students[i].name + " " + students[i].ave + "\n");
}
br.close();
bw.close();
BufferedReader br2 = new BufferedReader(new FileReader("STUD.DAT"));
String line;
while ((line = br2.readLine()) != null) {
String[] info = line.split(" ");
System.out.println("Num: " + info[0] + ", Name: " + info[1] + ", Average: " + info[2]);
}
br2.close();
}
}
```
输入样例(每行表示一个学生的信息):
```
1001 Tom 18 80 90 70
1002 Jerry 17 85 70 90
1003 Mary 19 90 85 80
1004 Bob 16 70 80 90
1005 Alice 18 80 75 85
```
输出样例:
```
Num: 1001, Name: Tom, Average: 80.0
Num: 1002, Name: Jerry, Average: 81.666664
Num: 1003, Name: Mary, Average: 85.0
Num: 1004, Name: Bob, Average: 80.0
Num: 1005, Name: Alice, Average: 80.0
```
用java1. 能够从键盘输入信息,存到文件中,并再次读出文件内容输出。 2. double 型数组中保存有如下数据:1.23,69.88,34.45,67.98,2345.67。将数据以二进制形式保存到文件中去。 3. 编程将以上数据以可打印形式保存到文件中去。
好的,我会分别回答你的三个问题。
1. 以下是用 Java 实现从键盘输入信息,存到文件中,并再次读出文件内容输出的代码:
```java
import java.io.*;
public class FileDemo {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = "test.txt";
try {
// 写入文件
FileWriter writer = new FileWriter(fileName);
System.out.println("请输入内容:");
String line = reader.readLine();
writer.write(line);
writer.close();
// 读取文件
FileReader reader1 = new FileReader(fileName);
BufferedReader br = new BufferedReader(reader1);
String s = null;
while ((s = br.readLine()) != null) {
System.out.println(s);
}
br.close();
reader1.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
2. 下面是将 double 型数组以二进制形式保存到文件中的代码:
```java
import java.io.*;
public class BinaryFileDemo {
public static void main(String[] args) {
double[] arr = {1.23, 69.88, 34.45, 67.98, 2345.67};
String fileName = "binary.dat";
try {
DataOutputStream out = new DataOutputStream(new FileOutputStream(fileName));
for (double d : arr) {
out.writeDouble(d);
}
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
3. 最后是将数据以可打印形式保存到文件中的代码:
```java
import java.io.*;
public class PrintFileDemo {
public static void main(String[] args) {
double[] arr = {1.23, 69.88, 34.45, 67.98, 2345.67};
String fileName = "print.txt";
try {
PrintWriter out = new PrintWriter(new FileWriter(fileName));
for (double d : arr) {
out.println(d);
}
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
希望能够帮到你。
阅读全文
相关推荐











