Your No Class Reader Works Great!
much faster than the other! (almost as fast as a cffile read of the
entire file).
I simplified the EOF test so I could use a While loop.
Thanks
Dick
Here's the revised code:
<cfsetting enableCFOutputOnly="yes" />
<cfset lineCount = 0 />
<cfset timer = GetTickCount() />
<cfscript>
filename = "/Users/Richard/Music/iTunes/iTunes Music Library.xml";
fileReader = createObject("java", "java.io.FileReader");
fileReader = fileReader.init(filename);
lineReader = createObject("java","java.io.LineNumberReader");
lineReader = lineReader.init(fileReader);
thisLine = true;
while (isDefined("thisLine")) {
thisLine = lineReader.readLine();
lineCount = LineCount + 1;
}
</cfscript>
<cfoutput>
<br>count = #lineCount# | #GetTickCount() - timer#
</cfoutput>
<cfsetting enableCFOutputOnly="no" />
I always forget to kill blank lines on this sort of thing -- very
important
On Jun 16, 2004, at 6:28 AM, Joe Rinehart wrote:
> Hey Dick,
>
> I've done a similar thing, but didn't create the external
> CFBufferedReader class. Do you see any reason why the following
> wouldn't
> provide the same?
>
> <cfscript>
> filename = "c:\cfusionmx\wwwroot\lineNumberReader.cfm";
> fileReader = createObject("java", "java.io.FileReader");
> fileReader = fileReader.init(filename);
> lineReader = createObject("java","java.io.LineNumberReader");
> lineReader = lineReader.init(fileReader);
> </cfscript>
>
> <cfset eof = false>
> <cfloop condition="not eof">
> <cfset thisLine = lineReader.readLine()>
> <cfif not isDefined("thisLine")>
> <cfset eof = true>
> <cfelse>
> <cfoutput>#htmlEditFormat(thisLine)#<br></cfoutput>
> </cfif>
> </cfloop>
>
> (when lineReader instance hits the end of the file, readLine()
> returns
> a result that causes thisLine to become undefined in the eyes of CF)
>
> -joe
>
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings] [Donations and Support]