账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Java 中如何转换文件编码格式?
    42
    0

    java 读一个文件,utf-16le 格式,里面都是手机号码

    multipart 形参读进来之后

    String line;
    br = new BufferedReader(new FileReader(file));
    while ((line = br.readLine()) != null) {
       。。。
       
       

    发现 line 是数字和乱码相间的一个字符串

    把文件在 linux 下用 vim 转换为 utf-8 格式就没问题

    请问这种情况,如果用户上传的不是 utf-8 格式的文件,

    譬如是这种 utf-16le 格式或者其他格式的

    java 中如何转换文件编码格式?


    我用了这种方案

                DataInputStream in = new DataInputStream(new FileInputStream(file));
        br= new BufferedReader(new InputStreamReader(in,"utf-8"));
    

    可是不管用,依然乱码

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孤单心事 普通会员 1楼

      在Java中,可以使用java.io包中的FileReaderBufferedReaderWriter类来转换文件编码格式。以下是一个简单的例子:

      ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter;

      public class Main { public static void main(String[] args) { String fileName = "example.txt"; String encoding = "UTF-8";

          try {
              FileInputStream fis = new FileInputStream(fileName);
              OutputStream fos = new FileOutputStream(fileName);
              BufferedReader br = new BufferedReader(new InputStreamReader(fis));
              BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
      
              String line;
              while ((line = br.readLine()) != null) {
                  bw.write(line + encoding);
              }
      
              bw.close();
              br.close();
              fis.close();
              fos.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
      

      } ```

      在这个例子中,我们首先创建了一个FileInputStream对象来读取文件,然后创建了一个FileOutputStream对象来写入文件。然后,我们创建了一个BufferedReaderWriter对象来读取和写入文件。

      我们使用readLine()方法来读取每一行的内容,并使用write()方法来写入每一行的内容。我们传递的参数encoding表示我们希望使用的文件编码格式。

      注意,这个例子假设你的文件是一个文本文件。如果你的文件是一个二进制文件,你可能需要使用不同的方法来读取和写入文件。

    • 浪荡一生钟情一人 普通会员 2楼

      在Java中,可以使用java.io包中的FileReaderBufferedReaderWriter类来转换文件编码格式。以下是一个简单的例子:

      ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter;

      public class Main { public static void main(String[] args) { String fileName = "example.txt"; String encoding = "UTF-8";

          try {
              FileInputStream fis = new FileInputStream(fileName);
              OutputStream fos = new FileOutputStream(fileName);
              BufferedReader br = new BufferedReader(new InputStreamReader(fis));
              BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
      
              String line;
              while ((line = br.readLine()) != null) {
                  bw.write(line + encoding);
              }
      
              bw.close();
              br.close();
              fis.close();
              fos.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
      

      } ```

      在这个例子中,我们首先创建了一个FileInputStream对象来读取文件,然后创建了一个FileOutputStream对象来写入文件。然后,我们创建了一个BufferedReaderWriter对象来读取和写入文件。

      我们使用readLine()方法来读取每一行的内容,并使用write()方法来写入每一行的内容。我们传递的参数encoding表示我们希望使用的文件编码格式。

      注意,这个例子假设你的文件是一个文本文件。如果你的文件是一个二进制文件,你可能需要使用不同的方法来读取和写入文件。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部