我的目标是使用BufferedReader从文件中获取字符串,但我可以获取字符串,但有时结果是“字符串字符串”,因此文件已损坏。 我使用readline来获取第一行,但它工作但有时候字符串带来的字节。 这是我试图做的代码
public static void main(String[] args) throws IOException {
InputStream inStream = null;
OutputStream outStream = null;
String line;
BufferedReader reader;
File afile = new File(
"snake2.jpg");
File bfile = new File(
"snake.jpg");
File file=new File("E://snake.txt");
// for stream reading and writing.....
inStream = new FileInputStream(afile);
outStream = new FileOutputStream(bfile);
OutputStream txt=new FileOutputStream(file);
// create byte array.....
ByteArrayOutputStream f = new ByteArrayOutputStream();
reader = new BufferedReader(new InputStreamReader(inStream));
line = reader.readLine();
答案 0 :(得分:1)
使用FileInputStream读取,您可以一次获取一个字节并测试它是否为char
inStream = new FileInputStream(afile);
int ch;
while ((ch = inStream.read ()) != -1)
{
if (ch >= 32 && ch <= 126) out.write (ch); // see ascii table
}
答案 1 :(得分:0)
我认为您的实现适用于文本,而非二进制文件:readLine
似乎不适合jpg
文件,而是使用read
。
以此related question为例。
答案 2 :(得分:0)