Java之通过OutputStream写入文件
1. 使用OutputStream写入文件
通过Java程序创建一个文件并往其中写入数据的方法之一就是使用java.io.OutputStream
。下面是一个可以将一些文本写入到文件中的Java程序的示例代码:
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.IOException;
public class WriteToFile {
public static void main(String[] args) {
String text = "Hello, world!";
try {
OutputStream outputStream = new FileOutputStream("output.txt");
byte[] byteArray = text.getBytes();
outputStream.write(byteArray);
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的例子中,我们使用了FileOutputStream
类创建了一个名为output.txt
的文件,并将Hello, world!
这段文本写入了这个文件中。需要注意的是,字节流在写入完成后,一定要记得及时关闭。如果在流还未关闭时程序异常退出,可能会导致写入失败或者数据不完整的问题。
2. 将文件复制到另一个位置
在Java中,我们可以通过读取一个文件并将其写入到另一个位置来完成文件的复制操作。这可以通过使用两个不同的java.io.InputStream
和java.io.OutputStream
来实现。下面是一个简单的文件复制程序的示例代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
public class CopyFileExample {
public static void main(String[] args) {
File sourceFile = new File("source.txt");
File destinationFile = new File("destination.txt");
try {
InputStream inputStream = new FileInputStream(sourceFile);
OutputStream outputStream = new FileOutputStream(destinationFile);
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的例子中,FileInputStream
类被用来读取源文件source.txt
中的内容,然后使用FileOutputStream
类将读取到的内容写到目标文件destination.txt
中。需要注意的是,我们定义了一个byte
数组作为缓存区,一次从源文件中读取1024字节的数据并将其写入目标文件。在读取和写入操作完成后,我们要及时地关闭这两个输入输出流,从而避免在复制期间发生数据不完整的问题。
3. 示例说明
示例一:使用OutputStream写入文件
在本示例中,我们使用FileOutputStream
类创建了一个名为output.txt
的文件,并将内容写入这个文件中。
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.IOException;
public class WriteToFile {
public static void main(String[] args) {
String text = "Hello, world!";
try {
OutputStream outputStream = new FileOutputStream("output.txt");
byte[] byteArray = text.getBytes();
outputStream.write(byteArray);
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在执行程序后,我们可以在当前目录下看到名为output.txt
的文件,其中包含Hello, world!
这段文本内容。
示例二:将文件复制到另一个位置
在本示例中,我们将使用Java程序从一个文件中读取内容,并将其写入到另一个文件中,从而完成文件的复制操作。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
public class CopyFileExample {
public static void main(String[] args) {
File sourceFile = new File("source.txt");
File destinationFile = new File("destination.txt");
try {
InputStream inputStream = new FileInputStream(sourceFile);
OutputStream outputStream = new FileOutputStream(destinationFile);
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在执行该程序后,我们可以在当前目录下看到名为destination.txt
的文件,其中的内容与源文件source.txt
完全一致。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java之通过OutputStream写入文件与文件复制问题 - Python技术站