javaの - IO(入出力)

ガイドパッケージ

Javaは、IO(入出力)ストリームと呼ばれる、java.ioパッケージに配置されている「フロー」。

字节流
java.io.InputStream
java.io.OutputStream
字符流
java.io.Reader
java.io.Writer

バイトストリーム

一般的な方法

InputStream
メソッド説明 機能説明
int型の読み取り() 8ビットのバイトは0〜255の間に彼の整数を変換するために、入力ストリームから読み出され、整数を返します
int型の読み取り(バイト[] b)は バイト数は、指定されたバイト配列パラメータBへ保存、入力ストリームから読み出されたリードバイト数を表す整数を返します
INTリード(バイト[] B、オフINT、INT LEN) バイト数は、入力ストリームから指定されたバイト配列bへ保存パラメータを読み取る、OFFがlenの意味を読み取るために、インデックスを保存を開始する開始バイト数のデータのバイト数を指定しません
空に近いです() すべてのシステム・リソースの流れに関連し、この入力ストリームを解放を閉じ
OutputStream
メソッド説明 機能説明
空の書き込み(INT B) 出力ストリームにバイトを書き込みます
空の書き込み(バイト[] b)は 指定されたバイト配列入力ストリームに書き込まbはバイトすべてのパラメータ
空の書き込み(バイト[] B、オフint型、int型のLEN) 入力ストリームにオフオフセットlenバイトから始まる指定されたバイト配列
空フラッシュ() この入力ストリームを更新し、書き込みに、すべてのバッファリングされた出力バイトを強制
空に近いです() この入力ストリームを閉じ、このストリームに関連するすべてのシステムリソースを解放します

書き込みバイトストリームファイル

FileInputStreamのは、具体的には、データファイルを読み取るため、バイト演算ファイル入力ストリームであるInputStreamのサブクラスであります

import java.io.*;

public class Temp{
    public static void main(final String[] args) throws Exception {
        final FileInputStream in = new FileInputStream("D:\\myfile\\java\\io\\temp.txt");
        int b = 0;
        while(true){
            b = in.read();
            if(b == -1){
                break;
            }
            System.out.println(b);
        }
        in.close();

    }
}

たFileOutputStreamは、具体的には、データファイルを書き込むため、バイトストリームファイル操作でのOutputStreamのサブクラスであり、既存のファイルへの追加、ファイル転送は関数たFileOutputStream(文字列のファイル名、ブール追記)を作成するために使用することができ

//导包
import java.io.FileOutputStream;

public class FileOutputStream_Test{
    public static void main(String[] args) throws Exception{
//        FileOutputStream out = new FileOutputStream("D:\\myfile\\java\\Java\\learn\\temp.txt");
        //向文件中增加内容
        FileOutputStream out = new FileOutputStream("D:\\myfile\\java\\Java\\learn\\temp.txt",true);
        String str = "Angelong";
        byte[] b = str.getBytes();
        for(int i = 0; i < b.length ;i++ ){
            out.write(b[i]);
        }
        out.close();
    }
}

文書のコピー

import java.io.FileInputStream;     //输入流包
import java.io.FileOutputStream;    //输出流包

public class Copy_test{
    public static void main(String[] args) throws Exception{
        FileInputStream in = new FileInputStream("D:\\myfile\\java\\Java\\learn\\temp.txt");
        FileOutputStream out = new FileOutputStream("D:\\myfile\\java\\Java\\learn\\io\\temp.txt");
        int len;
        while ((len = in.read()) != -1){
            out.write(len);
        }
        in.close();
        out.close();
    }
}

バッファのバイトストリーム

import java.io.FileInputStream;     //输入流包
import java.io.FileOutputStream;    //输出流包

public class Copy_test{
    public static void main(String[] args) throws Exception{
        FileInputStream in = new FileInputStream("D:\\myfile\\java\\Java\\learn\\temp.txt");
        FileOutputStream out = new FileOutputStream("D:\\myfile\\java\\Java\\learn\\io\\temp.txt");
        int len;
        while ((len = in.read()) != -1){
            out.write(len);
        }
        in.close();
        out.close();
    }
}

バイトストリームバッファ

それぞれ、IOバイトストリームにバッファ二つのパケットが設けにBufferedInputStreamなBufferedOutputStreamザ、それらの構築方法は、受信入力ストリームのOutputStreamトランザクションを読み書きするバッファリング機能を提供することを目的として、タイプパラメータと、

import java.io.FileInputStream;     //输入流包
import java.io.FileOutputStream;    //输出流包

public class Copy_test{
    public static void main(String[] args) throws Exception{
        FileInputStream in = new FileInputStream("D:\\myfile\\java\\Java\\learn\\temp.txt");
        FileOutputStream out = new FileOutputStream("D:\\myfile\\java\\Java\\learn\\io\\temp.txt");
        int len;
        while ((len = in.read()) != -1){
            out.write(len);
        }
        in.close();
        out.close();
    }
}

文字ストリーム

基本的な使い方

2つのトップレベルの親クラス:リーダライタ
リーダー:文字入力ストリームは、ソース機器から文字を読み取るために使用される;
ライター:ターゲットデバイスに文字を書くための文字入力ストリーム、
重要なサブクラス:
FileReaderをとてFileWriterファイルを読み書きするため
のバッファ機能が持つBufferedReaderのとBufferedWriterの流れ、彼らは、読み取りと書き込みの効率を改善するために使用することができます。

文字ストリームファイル操作

FileReaderのを使用してファイルを読みます

import java.io.FileReader;

public class FileReader_test{
    public static void main(String[] args) throws Exception{
        FileReader reader = new FileReader("D:\\myfile\\java\\Java\\learn\\temp.txt");
        int ch;
        while((ch = reader.read()) != -1){  //读取二进制数据
            System.out.print((char) ch);    //强行转换为char类型
        }
        reader.close();
    }
}

書き込みファイルを使用してFileWriter

import java.io.FileWriter;

public class FileWriter_test{
    public static void main(String[] args) throws Exception{
        FileWriter witer = new FileWriter("D:\\myfile\\java\\Java\\learn\\temp.txt",true);
        String test = "So hot !";
        witer.write(test);
        witer.write("\r\n");
        witer.close();
    }
}

パケットストリーム
パッケージングするためのBufferedReaderの文字入力ストリーム
パッケージングするためにBufferedWriterの文字出力ストリームを
注意:テキストの行を読み取るために使用される重要なBufferedReaderののreadLine()、があります。

import java.io.*;
public class Buff{
	public static void main(String[] args) throws Exception{
		FileReader reader = new FileReader("Temp.txt");
		BufferedReader br = new BufferedReader(reader);
		FileWriter writer = new FileWriter("java.txt");
		BufferedWriter bw = new BufferedWriter(writer);
		String str;
		while ((str = br.readLine()) != null){
			bw.write(str);
			bw.newLine();
		}
		br.close();
		bw.close();
	}
}

ファイルの種類

共通のファイルクラスのコンストラクタ

METHODステートメント 機能説明
ファイル(文字列のパス名) 指定された文字列型のファイルパスを通じて新しいFileオブジェクトを作成するには
ファイル(文字列の親、文字列の子) (ファイル名を含む)親と子のパス文字列型の指定されたパス文字列タイプに基づいてFileオブジェクトを作成します。
ファイル(ファイルの親STRNG子) (ファイル名を含む)指定されたクラスフィー列型に応じてFileオブジェクトの親のパスとサブ・パスを作成します。

ファイルの一般的な方法

METHODステートメント 機能説明
ブール値が存在します() 裁判官は、Fileオブジェクトファイルまたはディレクトリが存在し、そこトゥーレが返された場合は、そうでない場合はfalseに対応します
削除ブール値() それ以外の場合は成功したリターンが真、偽の場合は、ファイルまたはディレクトリに対応する削除Fileオブジェクトは、削除します
ブールでCreateNewFile() ファイルに対応するFileオブジェクトが存在しない場合は、この方法は、新しいファイルを作成します。このFileオブジェクトで指定され、成功すれば、真のリターンを作成し、そうでない場合はfalse
文字列のgetName() 戻り値Fileオブジェクトの名前は、ファイルやフォルダを表し
ある、getPath() リターンパスに対応するFileオブジェクト
文字列getAbsolutePath UNIX / Linuxシステム上の絶対パスに戻りますFileオブジェクトの対応(、パスはスラッシュ/始めている場合は、パスは絶対パスであり、Windowsシステムでは、パスが文字の先頭からのものである場合、道)
文字列のgetParent() ディレクトリの親ディレクトリに対応するバックファイルオブジェクト(すなわち、ディレクトリが最後のリターンサブディレクトリが含まれていません)
ブールcanRead() ファイルまたはディレクトリに対応するFileオブジェクトが読まれる分析、それ以外読める、falseの場合trueを返します
ブールcanWrite() 書き込み可能な場合はtrueを返し、オブジェクトに対応するファイルは、そうでない場合はfalse、ファイルまたはディレクトリを書き込むことができるか否かが判断されます
ブールISFILE() オブジェクトに対応するファイルの文書(いないディレクトリ)か否かが判断され、trueを返したファイルであれば、そうでない場合はfalse
ブールisDirectory() オブジェクトに対応する分析ファイルは、ディレクトリが真、そうでない場合はfalse、ディレクトリ(ファイルではなく)であります
ブールisAbsolute() ファイルまたはディレクトリに対応するFileオブジェクトは絶対パスであるかどうかを確認
長いLASTMODIFIED() ファイルへの1970年1月1日の夜十二時00分00秒で戻りミリ秒の最終更新時間でした
長い長さ() ファイルの長さの内容を返します。
文字列[]リスト() 列出指定且录的全部内容,只是列出名称
File[]listFiles() 返回一个包含了File 对象所有子文件和子目录的File数组
Select_File.java
import java.io.File;
import java.io.IOException;

public class Select_File{
    public static void main(String[] args){
        File file = new File("D:\\myfile\\java\\Java\\learn\\Temp.txt");
        //获取文件名称
        System.out.println("File name:" + file.getName());
        //获取相对路径
        System.out.println("File path:" + file.getPath());
        //获取绝对路径
        System.out.println("File absolute:" + file.getAbsolutePath());
        //获取文件父路径
        System.out.println("File parent:" + file.getParent());
        //判断文件是否可读
        System.out.println(file.canRead()?"Read yes":"Read no");
        //判断文件是否可读
        System.out.println(file.canWrite()?"Writer yes":"Writer no");
        //判断是否是一个文件
        System.out.print(file.isFile()?"is a file":"not a file");
        //判断是否是一个目录
        System.out.print(file.isDirectory()?"is dirctory":"not dirctory");
        //判断是否是一个绝对路径
        System.out.print(file.isAbsolute()?"is absolute":"not absolute");
        //获得文件最后的修改时间
        System.out.println("Modified lost time:" + file.lastModified());
        //获取文件大小
        System.out.print("File size:" + file.length()+"bytes");
        //是否成功删除
        System.out.print("Delete File is:" + file.delete());
    }
}
遍历目录下的文件

Find_File.java

import java.io.File;

public class Find_File{
    public static void main(String[] args){
        File file = new File("D:\\myfile");
        //判断是否是一个目录
        System.out.println("is Directory:" + file.isDirectory());
        if(file.isDirectory()){         //如果是一个目录
            String[] names = file.list();   //获取目录下的所有文件名
            for(String name : names){   
                System.out.println(name);      //输出所有文件名
            }
        }
    }
}
删除文件及目录

仅删除文件

import java.io.*;

public class Delete_File{
    public static void main(String[] margs){
        File file = new File("D:\\新建文本文档.txt");
        if(file.exists()){
            System.out.println(file.delete());
        }
    }
}

删除文件及目录

import java.io.*;

public class Delete_Drectory{
    public static void main(String[] args){
        File file = new File("D:\\myfile\\java\\learn");
        deleteDir(file);
    }
    public static void deleteDir(File dir){
        if(dir.exists()){
            File[] files = dir.listFiles();
            for(File file : files){
                if(file.isDirectory()){
                    deleteDir(file);
                }else{
                    file.delete();
                }
            }
            dir.delete();
        }
    }
}
发布了9 篇原创文章 · 获赞 0 · 访问量 113

おすすめ

転載: blog.csdn.net/weixin_44439071/article/details/103920758