Javaファイルストリームの転送方法は?
javaファイルストリーム転送には主に以下の方法があります。
- InputStreamとOutputStreamを使用してバイトストリームを送信します。InputStreamを使用してソースファイルのバイトデータを読み取り、OutputStreamを使用してバイトデータをターゲットファイルに書き込みます。
// 读取源文件的字节数据
InputStream inputStream = new FileInputStream("source.txt");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
// 将字节数据写入目标文件
outputStream.write(buffer, 0, bytesRead);
}
inputStream.close();
outputStream.close();
- 文字ストリームの転送:リーダーとライターを使用して文字ストリームを転送します。リーダーを使用してソースファイルの文字データをよみこみ、ライターを使用して文字データをターゲットファイルに書き込みます。
// 读取源文件的字符数据
Reader reader = new FileReader("source.txt");
char[] buffer = new char[1024];
int charsRead;
while ((charsRead = reader.read(buffer)) != -1) {
// 将字符数据写入目标文件
writer.write(buffer, 0, charsRead);
}
reader.close();
writer.close();
- バッファストリーム転送: BufferedInputStreamとBufferedOutputStreamを使用し、バイトストリームを転送するか、BufferedReaderとBufferedWriterを使用して、キャラクターストリームを転送します。バッファストリームは、読み書き効率を向上し、大規模ファイルの転送に適しています。
// 使用字节流传输
InputStream inputStream = new FileInputStream("source.txt");
OutputStream outputStream = new FileOutputStream("target.txt");
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = bufferedInputStream.read(buffer)) != -1) {
bufferedOutputStream.write(buffer, 0, bytesRead);
}
bufferedInputStream.close();
bufferedOutputStream.close();
// 使用字符流传输
Reader reader = new FileReader("source.txt");
Writer writer = new FileWriter("target.txt");
BufferedReader bufferedReader = new BufferedReader(reader);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
char[] buffer = new char[1024];
int charsRead;
while ((charsRead = bufferedReader.read(buffer)) != -1) {
bufferedWriter.write(buffer, 0, charsRead);
}
bufferedReader.close();
bufferedWriter.close();
具体的な要求に応じて、ファイル転送を行うのに適した方法を選択できる手法です。