public static void main(String[] args) {
ByteStream byteStream = new ByteStream();
//1、字节输入流,表示把文件写入到硬盘中
byteStream.outPutStream("D:\2.txt");
//2、字节输出流,表示想硬盘读出文件显示出来
byteStream.inputStream("D:\2.txt");
}
private void inputStream(String path) {
File file = new File(path);
if (!file.exists()) {
IAssert.throwMsg("文件不存在:" + path);
}
//todo 下面两行都可以实现字节流读取
InputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(file);
} catch (FileNotFoundException e) {
IAssert.throwMsg("文件不存在:" + path);
}
try {
byte[] bytes = new byte[1024];
// byte[] bytes = new byte[(int) file.length()];
int len = fileInputStream.read(bytes);
while (len != -1) {
len = fileInputStream.read(bytes);
}
String currentData = new String(bytes, StandardCharsets.UTF_8);
IAssert.throwMsg("读出的数据为:" + currentData);
//必须手动关闭,因为fileInputStream不属于内存的资源,导致垃圾回收器无法回收这些不用的资源。
fileInputStream.close();
} catch (IOException e) {
IAssert.throwMsg("写入失败");
}
}
//读取文件中所有的内容
private void inputStreamAll(String path) {
File file = new File(path);
if (!file.exists()) {
IAssert.throwMsg("文件不存在:" + path);
}
StringBuffer buffer = new StringBuffer();
//todo 下面两行都可以实现字节流读取
long length = (file.length()/1024)+1;
IAssert.throwMsg("长度为:"+length);
InputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(file);
} catch (FileNotFoundException e) {
IAssert.throwMsg("文件不存在:" + path);
}
try {
for (int i = 0; i < length; i++) {
byte[] bytes = new byte[1024];
// byte[] bytes = new byte[(int) file.length()];
int len = fileInputStream.read(bytes);
while (len != -1) {
len = fileInputStream.read(bytes);
}
String currentData = new String(bytes, StandardCharsets.UTF_8);
buffer.append(currentData);
}
IAssert.throwMsg("读出的数据为:" + buffer.toString());
//必须手动关闭,因为fileInputStream不属于内存的资源,导致垃圾回收器无法回收这些不用的资源。
fileInputStream.close();
} catch (IOException e) {
IAssert.throwMsg("写入失败");
}
}
private void outPutStream(String path) {
File file = new File(path);
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
IAssert.throwMsg("创建文件失败:" + path);
}
}
String content = "我是中国人";
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(file);
} catch (FileNotFoundException e) {
IAssert.throwMsg("找不到文件:" + file.getPath());
}
try {
fileOutputStream.write(content.getBytes(StandardCharsets.UTF_8));
fileOutputStream.close();
} catch (IOException e) {
IAssert.throwMsg("写入失败");
}
}