头歌 Java IO 答案 增加章节java学习-Java输入输出之字节缓冲IO流之复制文件

第 11 章 Java IO

更多头歌答案我的博文主页搜索
头歌MySQL数据库实训答案 有目录

头歌 编译原理答案 用LEX(FLEX)生成PL语言的词法分析器

头歌java 实训 答案 代码 java入门

学习-Java输入输出之字节缓冲IO流之复制文件

第1关:学习-Java输入输出之字节缓冲IO流之复制文件

import java.io.*;
import java.util.Scanner;
public class FileTest {
    
    
    public static void main(String[] args) throws IOException {
    
    
        Scanner scanner = new Scanner(System.in);     // 获取给定字符串
        String s = scanner.nextLine();
         // 请在Begin-End间编写完整代码
        /********** Begin **********/
        // 切割给定字符串,获取源文件路径和目标文件路径
        String[] split = s.split(",");       
        String  folder= split[0];     // 源文件路径
        String fileName = split[1];     // 目标文件路径
        // 创建缓冲流对象,实现文件复制
         File file = new File(split[1]);
        try(               
            BufferedOutputStream bfout= new BufferedOutputStream(new FileOutputStream(file,true));
            BufferedInputStream bfin= new BufferedInputStream(new FileInputStream(split[0]))) {
    
    
            int read;
            while((read=bfin.read())!=-1){
    
    
                bfout.write(read);
            }
        }
        // 输出目标文件长度
        System.out.println("文件长度:"+file.length());
        /********** End **********/
    }
}

学习-Java输入输出之文件字符IO流之文件加密

第1关

import java.io.*;

import static java.lang.Character.isLetterOrDigit;

import java.util.Scanner;

public class FileTest {
    
    
    public static void main(String[] args) throws IOException {
    
    
        // 请在Begin-End间编写完整代码

        // 接收给定字符串,获取相关路径

        Scanner sc = new Scanner(System.in);

        String strs = sc.next();  

        String [] str = strs.split(",");

        // 读取源文件

        File file1 = new File(str[0]);

        FileReader fis = new FileReader(file1);

        char[] buffs = new char[(int)file1.length()];

        fis.read(buffs);

        // 加密

        jiami(buffs);

        // 把加密后的内容保存到目标文件

        File file2 = new File(str[1]);

        FileWriter fos = new FileWriter(file2);

            if(str[1].equals("/test/b.txt")){
    
    
                fos.write(buffs,0,(int)file1.length());  

                fis.close();

                fos.close();

                System.exit(0);

        }

        fos.write(buffs,0,(int)file1.length());

        fos.flush();

        fis.close();

        fos.close();

}

        // 定义加密方法

        public static void jiami(char[] ch){
    
    
            for(int i=0;i<ch.length;i++){
    
    
                if(ch[i]>='0'&&ch[i]<'9'){
    
    
                    ch[i]++;

                }

                else if(ch[i]=='9'){
    
    
                    ch[i]='0';

                }

                else if((ch[i]>='a'&&ch[i]<'z')||(ch[i]>='A'&&ch[i]<'Z')){
    
    
                    ch[i]++;

                }

                else if(ch[i]=='z'){
    
    
                    ch[i]='a';

                }

                else if(ch[i]=='Z'){
    
    
                    ch[i]='A';

                }

            }        

        }

        /********** End **********/

}

学习-Java输入输出之对象IO流之序列化一个对象

第1关
myproject/src/step 1/File Testjava

import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class FileTest {
    
    
 
    public static void main(String[] args) throws IOException, ClassNotFoundException {
    
    
        // 接收给定的数据
        Scanner scanner = new Scanner(System.in);
        String filedir = scanner.next();
        String name = scanner.next();
        int age = scanner.nextInt();
 
        // 请在此编写代码
        /********** Begin **********/
        // 创建Student对象
        Student stu = new Student(name,age);
        // 给对象属性赋值
        File file = new File(filedir);
        // 序列化对象到文件中,并通过反序列化读取文件内容,最后打印对象的所有属性
        ObjectOutputStream oos = new ObjectOutputStream(new  FileOutputStream(file));
        
        oos.writeObject(stu);
 
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
 
        System.out.print(ois.readObject());
        /********** End **********/
 
    }
}

myproject/src/step 1/Student.java

import java.io.Serializable;
 
public class Student implements Serializable {
    
    
    public String name;
    public int age;
    public Student(String name,int age){
    
    
        this.name=name;
        this.age=age;
    }
    public String toString (){
    
    
       return this.name+"\n"+this.age;
    }
}
 

学习-Java输入输出之随机IO流之向文件中追加内容

第1关

import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class FileTest {
    
    
    public static void main(String[] args) throws IOException {
    
    
        // 请在Begin-End间编写完整代码
        /********** Begin **********/
        // 接收给定的字符串
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        // 切割字符串
        String[] split = str.split(",");
        // 通过文件对象创建RandomAccessFile对象
        File file = new File(split[0]);
        try(
                RandomAccessFile randomAccessFile = new RandomAccessFile(file,"rw");
        ){
    
    
        // 移动指针位置
        randomAccessFile.seek(randomAccessFile.length());
        // 追加给定内容
        randomAccessFile.write(split[1].getBytes());
        // 打印追加内容后的文件指针位置
        System.out.print(randomAccessFile.getFilePointer());
        }
        /********** End **********/
    }
}

学习-Java输入输出之数组IO流之将给定整数转换为字符串

第1关

import java.io.*;
import java.util.Scanner;
public class FileTest {
    
    
    public static void main(String[] args) throws IOException {
    
    
        // 请在此编写代码
        /********** Begin **********/
        // 创建ByteArrayOutputStream对象
        try (
            ByteArrayOutputStream bOutput = new ByteArrayOutputStream();) {
    
    
            // 获取给定数据并写入ByteArrayOutputStream流中
            Scanner scanner = new Scanner(System.in);
            while(!scanner.hasNext("%")){
    
    
            bOutput.write(scanner.nextInt());
            }
            // 从流中取出数据
            byte b[] = bOutput.toByteArray();
            // 将数据转换为字符串,并输出结果
            System.out.println(new String(b));
        }
            /********** End **********/
    }
}

学习-Java输入输出之数据IO流之向文件中写入数字并读取

第1关

import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class FileTest {
    
    
    public static void main(String[] args) throws IOException {
    
    
        // 接收给定的数据
        Scanner scanner = new Scanner(System.in);
        String filedir = scanner.next();
        int num1 = scanner.nextInt();
        int num2 = scanner.nextInt();
        int num3 = scanner.nextInt();
        // 请在此编写代码
        /********** Begin **********/
        // 将数字写入文件中
        try (
                // 通过文件字节输出流创建DataOutputStream对象
                DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(filedir));
                // 通过文件字节输入流创建DataInputStream对象
                DataInputStream dataInputStream = new DataInputStream(new FileInputStream(filedir));) {
    
    
                dataOutputStream.writeInt(num1);
                dataOutputStream.writeInt(num2);
                dataOutputStream.writeInt(num3);
         // 从文件中读取数字,并输出结果
                for(int n=0;n<3;n++){
    
    
                    int num = dataInputStream.readInt();
                    System.out.println("读取的数字为:"+num);
                }
        }
        /********** End **********/
    }
}

## Java高级特性 - IO流
	第1关
	
```lua
BC
C

第2关

package step2;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Task {
    
    
    public void task() throws IOException{
    
    
        /********* Begin *********/
        FileInputStream fs = new FileInputStream("src/step2/input/task.txt");
        byte[] b = new byte[8];
        fs.read(b);
        String str = new String(b);
        System.out.println(str);
        File dir = new File("src/step2/output/");
        if(!dir.exists()){
    
    
            dir.mkdir();
        }
        FileOutputStream fos = new FileOutputStream("src/step2/output/output.txt");
        String out = "learning practice";
        byte[] outByte = out.getBytes();    //将字符串转换成字节
        fos.write(outByte);                    //写数据
        //释放资源
        fs.close();
        fos.close();
        /********* End *********/
    }
}

第3关

package step3;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Task {
    
    
	
	public void task() throws IOException{
    
    
		/********* Begin *********/
		String file1 = "src/step3/input/input.txt";   //创建文件
		FileReader fr = new FileReader(file1);   //实例化
		char[] ch = new char[8];  //创建数组
		fr.read(ch);              //将文件的数据读入到数组中(从前到后)

		String file2="src/step3/output/output.txt";//创建文件
        FileWriter fw = new FileWriter(file2); // 实例化
        fw.write(ch); // 读入数组中的数据到文件中(从后到前)

        fr.close();   //关闭流
        fw.flush();   //刷新流
        fw.close();   //关闭流
		/********* End *********/		
	}
}

第4关

package step4;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Task {
    
    
	
	public void task() throws IOException{
    
    
		/********* Begin *********/
		FileReader fr = new FileReader("src/step4/input/input.txt");
		FileWriter fw = new FileWriter("src/step4/output/output.txt");
		int len = 0;
		char[] cha = new char[1024];
		while ( (len = fr.read(cha) ) != -1) 
		{
    
    
			fw.write(cha , 0 , len);
		}
		fr.close();
		fw.flush();
		fw.close();
		
		FileInputStream fs = new FileInputStream("src/step4/input/input.jpg");
		FileOutputStream fo = new FileOutputStream("src/step4/output/output.jpg");
		int le = 0;
		byte[] bt = new byte[1024];
		while ( (le = fs.read(bt) ) != -1)
		{
    
    
			fo.write (bt , 0 , le);
		}
		fs.close();
		fo.flush();
		fo.close();		
		/********* End *********/		
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_46263778/article/details/122094899