groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jochen Theodorou (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GROOVY-8467) IOGroovyMethods class readLine method works unexpected in
Date Tue, 06 Feb 2018 12:13:00 GMT

    [ https://issues.apache.org/jira/browse/GROOVY-8467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16353786#comment-16353786
] 

Jochen Theodorou commented on GROOVY-8467:
------------------------------------------

I think I see the problem now. If we read A\r\nB\r\n, then readLine will make first a line
for A and then the expectation is to have the next line for B. The loop up there will only
consume the \r, not the \n. And this leads to an empty line. So reading all lines will produce
A, empty, B empty. Is that correct?

> IOGroovyMethods class readLine method works unexpected in  
> -----------------------------------------------------------
>
>                 Key: GROOVY-8467
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8467
>             Project: Groovy
>          Issue Type: Bug
>         Environment: windows 7
>            Reporter: zhuxiaobing
>            Priority: Major
>         Attachments: Screenshot from 2018-02-05 13-30-03.png, groovy_test_linux.zip,
groovy_test_win.zip
>
>
> i have a android aapt dump file
> i try to read the file use the code below:
>  
> {code:java}
> InputStreamReader inputReader = new InputStreamReader(dumpFile)
> String line = null
> while ((line = inputReader.readLine()) != null){
>     println(line)
> }
> {code}
> the dumpfile uses \r\n to start a new line, while the IOGroovyMethods
> readLineFromReaderWithoutMark method which called by readLine  method  is : 
> {code:java}
>  private static String readLineFromReaderWithoutMark(Reader input) throws IOException
{
>     int c = input.read();
>     if(c == -1) {
>         return null;
>     } else {
>         StringBuilder line;
>         for(line = new StringBuilder(expectedLineLength); c != EOF && c != 10
&& c != 13; c = input.read()) {
>             char ch = (char)c;
>             line.append(ch);
>         }
>         return line.toString();
>     }
> }{code}
>  this casues an extra empty line read.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message