栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java实验报告9 输入输出流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java实验报告9 输入输出流

实验目的

1.理解Java技术体系中“流”的概念。

2.掌握System.in和System.out的基本使用方法

3.掌握字节流和字符流的常用类及使用方法。

4.掌握Java程序对文件的基本操作。

实验学时 4学时

实验内容

1.编写程序使用System.in对象的read()方法读取键盘输入,当程序运行时,首先询问需要输入的数据个数,然后依次输入指定个数的整数,输入完毕后,输出所有输入整数的和。

实现代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test1 {
	public static void main(String[] args) throws NumberFormatException, Exception {
		// 创建一个接收键盘输入数据的输入流
		int b[] = new int[512];
		int sum = 0;
		InputStreamReader ir = new InputStreamReader(System.in);
		// 把输入流放到缓冲流里

		BufferedReader br = new BufferedReader(ir);
		System.out.println("你想输入多少个数:");
		// Integer.parseInt是将整型数据Integer转换为基本数据类型int
		int n = Integer.parseInt(br.readLine());

		for (int i = 0; i < n; i++) {
			int a = Integer.parseInt(br.readLine());
			b[i] = a;
			sum += b[i];
		}
		for (int i = 0; i < n; i++) {
			System.out.print(b[i] + " ");
		}
		System.out.println("总数:" + sum);
	}
}

2.在电脑D盘创建一个名为FileList的文本文件,将D盘下所有文件及文件夹名称保存到这个文件中。

实现代码:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;


public class Test2 {
	public static void main(String[] args) {

		try {

			File f = new File("D:\FileList");
			f.createNewFile();

			File file = new File("D:\");
			String[] fs = file.list();
			FileOutputStream out = new FileOutputStream(f);

			for (String fs1 : fs) {

				out.write(fs1.getBytes());
				out.write("rn".getBytes());
				out.close();
			}

		} catch (Exception e) {

			e.printStackTrace();
		}

	}

}

3.编写程序读取一个文件(文件名由键盘输入)的内容,可对其进行修改,再保存。

实现代码:

import java.io.FileWriter;
import java.io.IOException;


public class Test3 {
	public static void main(String[] args) {
		Test3.testFileWrite("我爱打代码", "C:\Dell\Test.txt");

	}

	// test是输入的内容 outPath 是文件路径
	public static void testFileWrite(String test, String outPath) {

		try {
			FileWriter fw = new FileWriter(outPath);
			fw.write(test);// 写到内存中
			fw.flush();// 把内存的数据刷到硬盘
			fw.close();// 关闭流

		} catch (Exception e) {

			e.printStackTrace();
		}

	}
}

4.请编程实现文件的拷贝功能(可跨目录进行拷贝),要求源文件名及目标文件名在程序运行后根据提示输入。

实现代码:

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Test4 {
	public static void main(String[] args) {

		Test4.copyFile("C:/Dell/Test.txt", "C:/Users/splendid/Desktop/Test.txt");
	}

	public static void copyFile(String inPath, String outPath) {
		try {
			FileInputStream in = new FileInputStream(inPath);// 读取的源文件
			FileOutputStream out = new FileOutputStream(outPath);// 要复制到哪里

			byte[] b = new byte[1024];// 设置一个byte数组接收读取的文件的内容
			int len = 0;// 设置读取数据的长度
			// in.read方法有一个返回值,返回值是读取的数据的长度,如果读取到最后一个数据,还会向后读一个,这个时候返回值就是-1
			// 也就意味着当in.read的返回值是-1的时候整个文件就读取完毕了
			while ((len = in.read(b)) != -1) {
				out.write(b, 0, len);
				// 参数1是写的缓冲数组,参数2是从数组的那个位置开始,参数3是获取的数组的总长度
			}
			out.flush();
			out.close();
			in.close();

		} catch (Exception e) {

			e.printStackTrace();
		}
	}

}

5.对于重要文件通常需要进行加密处理,请编写程序实现对文本文件的加密,密码表如下,明文如果是大写字母则密文也为密码表对应大写字母,明文如果是小写字母则密文也为密码表对应小写字母。

明文

A

B

C

D

E

F

G

H

I

J

K

L

M

密文

T

O

I

A

N

D

E

G

H

Z

B

K

F

明文

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

密文

J

M

C

L

P

Y

V

X

Q

R

W

U

S

实现代码:

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;

public class Test5 {

	public static void main(String[] args) throws Exception {
		// 创建两个数组 分别填入字母以及加密后的密文
		char reality[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
				'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
		char fake[] = { 'T', 'O', 'I', 'A', 'N', 'D', 'E', 'G', 'H', 'Z', 'B', 'K', 'F', 'J', 'M', 'C', 'L', 'P', 'Y',
				'V', 'X', 'Q', 'R', 'W', 'U', 'S' };
		FileWriter fw = new FileWriter(new File("C:\Dell\Test5.txt"));
		FileReader fr = new FileReader(new File("C:\Dell\Test5.txt"));
		Scanner in = new Scanner(System.in);
		String str = in.nextLine();
		char[] a = str.toCharArray();// toCharArray() 方法将字符串转换为字符数组。
		for (int n = 0; n < a.length; n++) {
			for (int i = 0; i < 26; i++) {
				if (a[n] == reality[i]) {// 一个一个的进行字母的加密
					a[n] = fake[i];
				} else if (a[n] <= 'z' && a[n] >= 'a') {
					// 如果输入是小写的先转化成大写 然后对应大写的字母
					if (reality[i] == (char) (a[n] - 32)) { // a[n] - 32后成对应的ASCII码 因此要强制类型转换
						a[n] = (char) (fake[i] + 32);//将大写的密文转换成小写
					}
				}
			}
		}
		fw.write(a);

		in.close();
		fw.close();
		fr.close();
	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/946140.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号