1
1
package com .spun .util .io ;
2
2
3
- import com .spun .util .ArrayUtils ;
4
- import com .spun .util .Asserts ;
5
- import com .spun .util .FormattedException ;
6
- import com .spun .util .ObjectUtils ;
3
+ import com .spun .util .*;
7
4
8
5
import javax .imageio .ImageIO ;
9
6
import java .awt .image .BufferedImage ;
26
23
import java .nio .file .*;
27
24
import java .util .ArrayList ;
28
25
import java .util .List ;
26
+ import java .util .stream .Collectors ;
29
27
import java .util .stream .Stream ;
30
28
31
29
/**
@@ -225,9 +223,17 @@ public static void writeFile(File file, InputStream data)
225
223
}
226
224
public static String readFile (String absolutePath )
227
225
{
228
- return readFile (new File (absolutePath ));
226
+ return readFile (absolutePath , true );
227
+ }
228
+ public static String readFile (String absolutePath , boolean ensureTrailingNewline )
229
+ {
230
+ return readFile (new File (absolutePath ), ensureTrailingNewline );
229
231
}
230
232
public static String readFile (File file )
233
+ {
234
+ return readFile (file , true );
235
+ }
236
+ public static String readFile (File file , boolean ensureTrailingNewline )
231
237
{
232
238
try
233
239
{
@@ -237,7 +243,13 @@ public static String readFile(File file)
237
243
decoder .onMalformedInput (CodingErrorAction .IGNORE );
238
244
Reader reader = new InputStreamReader (Files .newInputStream (file .toPath ()), decoder );
239
245
BufferedReader in = new BufferedReader (reader );
240
- return readBuffer (in );
246
+ String output = readBuffer (in );
247
+ output = output .replaceAll ("\r \n " , "\n " );
248
+ if (ensureTrailingNewline )
249
+ {
250
+ output = StringUtils .ensureEnding (output , "\n " );
251
+ }
252
+ return output ;
241
253
}
242
254
catch (Throwable t )
243
255
{
@@ -248,15 +260,13 @@ public static String readBuffer(BufferedReader in)
248
260
{
249
261
try
250
262
{
251
- StringBuffer string = new StringBuffer ();
252
- String line ;
253
- while ((line = in .readLine ()) != null )
263
+ StringBuilder sb = new StringBuilder ();
264
+ int ch ;
265
+ while ((ch = in .read ()) != - 1 )
254
266
{
255
- string .append (line );
256
- string .append ("\n " );
267
+ sb .append ((char ) ch );
257
268
}
258
- in .close ();
259
- return string .toString ();
269
+ return sb .toString ();
260
270
}
261
271
catch (Throwable t )
262
272
{
0 commit comments