【发布时间】:2016-07-21 10:39:26
【问题描述】:
我正在尝试读取一个文件(与扩展名无关)并在此之后写入,但是当我这样做时,输出文件与输入不同。
我的代码是下一个:
OutputStream outputStream = null;
FileReader fr = new FileReader("rute\\inputfile.PNG");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line= br.readLine()) != null) {
content += line;
}
byte[] toBytes= content.getBytes();
InputStream inputStream = new ByteArrayInputStream(toBytes);
try {
outputStream = new FileOutputStream(new File("rute\\output.PNG"));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
inputStream.close();
如果你问我为什么转换成字节并从这种形式写入,是因为我需要对数据做一些事情,我需要这种转换。 如果你告诉我我不能在字符串上加载图像,是的,我可以这样做:
File fil = ~~~~;
FileInputStream fis = null;
fis = new FileInputStream(fil);
byte[] bytess = IOUtils.toByteArray(fis);
但我不想这样做,因为如果我想加载大文件,堆大小是不够的,这可以通过“每行一行”读取来解决。
感谢您的回答
【问题讨论】:
-
问题是什么?
-
如何在不更改文件的情况下读写文件,或者输出文件与输入不同的问题/原因是什么?
标签: java file file-writing file-read