Java IO

1、file类

             file类的构造方法:
             public Flie(String pathname)  -->实例化Flie类的时候,必须设置好路径。
             如:Flie f = new Flie("d:\\test.txt");

(1)Windows中使用反斜杠表示目录的分隔符。
(2) Linux中使用正斜杠表示目录的分隔符。
Flie类主要方法:

2、字节流与字符流

Java IO的操作流程:
(1)使用Flle类打开一个文件。
(2)通过字节流和字符流的子类指定输出的位置。
(3)进行读和写的操作。
(4)关闭输入和输出。

字节流

字节输出流:OUtputStream
OutputStream是一个抽象类,因此需要通过子类FileOutputStream实例化对象,才能够使用它。
常用方法:
public void write(int b) throws IOException:
一次写一个字节    b- 要写入的字节。

public void write(byte[] b) throws IOException:
一次写一个字节数组

public void write(byte[] b, int off,int len) throws IOException:
一次写一部分字节数组

public void close()throws IOException
关闭此文件输出流并释放与此流有关的所有系统资源。此文件输出流不能再用于写入字节。

字节输入流:
它与OutputStream一样,需要通过子类FlieInputStream实例化对象。
常用方法:

字符流

字符输出流:Writer
它也是一个抽象类,需要通过子类FlieWriter实例化对象。
常用方法:

字符输入流:Reader
同样是一个抽象类,需要通过子类FlieReader实例化对象。
常用方法:
public int read() throws IOException
读取单个字符。
作为一个整数(其范围从 0 到 65535 (0x00-0xffff))读入的字符,如果已到达流末尾,则返回 -1

public int read(char[] cbuf) throws IOException
一次读取一个字节数组

cbuf - 目标缓冲区
读取的字符数,如果已到达流的末尾,则返回 -1

public void close() throws IOException
关闭该流并释放与之关联的所有资源。

public String readLine() throws IOException
读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。
包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null

课堂作业

实验代码

package 课堂作业;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) throws Exception {
        String pathname="D:"+File.separator+"课堂作业"+File.separator+"作业.txt";
        aFormatA(pathname);
    }
    public static void aFormatA(String pathname) throws Exception {
        File file=new File(pathname);
        Reader input=new FileReader(file);
        Writer out=new FileWriter(file,true);
        int z;
        out.write('\n');
        String str="字母大写";
        out.write(str);
        out.write('\n');
        while(true){
            if((z=input.read())!=-1){
                 if(z>=97&&z<=122){
                    z=z-97+'A';
                 }
                 out.write(z);
            }
            else {
                break;
         }
     }
        input.close();
        out.close();
    }

}
package 课堂作业;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
 
public class Main1{
    public static void main(String[] args) throws Exception{
        String pathname="D:"+File.separator+"课堂作业"+File.separator+"作业.txt";
        aFormatA(pathname);
    }
    private static void aFormatA(String pathname) throws Exception{
        File file =new File(pathname);
        InputStream input=new FileInputStream(file);
        OutputStream out=new FileOutputStream(file,true);
        byte[] b=new byte[(int)file.length()];
        int i=0;
        int z;
        while(true){
            if((z=input.read())!=-1){
                if(z<=122&&z>=97){
                    z=z-97+'A';
                }
                b[i]=(byte)z;
                i++;
            }
            else{
                break;
            }
        }
        out.write("\n字母大写\n".getBytes());
        out.write(b);
        input.close();
        out.close();
    }
    
}

实验截图与代码截图

posted on 2019-11-03 19:34  山海观澜  阅读(110)  评论(0编辑  收藏  举报