CoverityFix CID:1350866 Dubious method used 95/20395/4
Nimish Kapoor [Tue, 31 Jul 2018 15:57:36 +0000 (20:57 +0530)]
Found a call to a method which will perform a byte to String (or String to
byte) conversion, and will assume that the default platform encoding is
suitable. This will cause the application behaviour to vary between
platforms. Use an alternative API and specify a charset name or Charset
object explicitly.
https://stackoverflow.com/questions/696626/java-filereader-encoding-issue

Change-Id: I27b89fbd05d76b9239cc5cd702b6069043b35a3e

scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/FileUtils.java

index 1febaf0..676d19c 100644 (file)
@@ -19,6 +19,8 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.FileInputStream;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -106,8 +108,8 @@ public final class FileUtils {
      */
     public static boolean isBinaryFile(File f) {
         if (f.isFile() && f.canRead()) {
-            try (BufferedReader reader = new BufferedReader(new FileReader(f)))
-                {                
+            try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(f), "UTF-8")))
+                {
                 char[] buffer = new char[CHARTOREAD];
                 int len = reader.read(buffer, 0, CHARTOREAD);
                 int i = 0;