从带有out字节的字节获取第一行字符串

时间:2014-08-28 07:05:11

标签: java byte bufferedreader

我的目标是使用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();

3 个答案:

答案 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)