国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java實(shí)現(xiàn)文件編碼轉(zhuǎn)換的方法

java實(shí)現(xiàn)文件編碼轉(zhuǎn)換的方法

2021-04-29 14:36MikanMu Java教程

這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件編碼轉(zhuǎn)換的方法,分享一個文件編碼轉(zhuǎn)換的工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在開發(fā)過程中,可能會遇到文件編碼的轉(zhuǎn)換,雖然說開發(fā)工具eclipse可以轉(zhuǎn)換編碼,但是有的情況卻很不方便。比如,原來文件本身的編碼是gbk,現(xiàn)在要轉(zhuǎn)換成utf-8,如果直接在eclipse中把文件編碼修改成utf-8,恭喜你,是亂碼,因?yàn)椴荒苤苯訌膅bk到utf-8進(jìn)行轉(zhuǎn)換,這時就需要我們手動的來轉(zhuǎn)換編碼。下面是一個文件編碼轉(zhuǎn)換的工具類。

java" id="highlighter_86866">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package com.mikan.stuff;
 
import java.io.file;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.filenamefilter;
import java.io.inputstream;
import java.io.inputstreamreader;
import java.io.outputstream;
import java.io.outputstreamwriter;
import java.nio.charset.charset;
import java.nio.charset.unsupportedcharsetexception;
 
public class filecharsetconverter {
 
  public static void main(string[] args) throws exception {
    convert("d:\\stuff\\src\\main\\java\\com\\mikan\\stuff\\test.txt",
        "gbk", "utf-8", new filenamefilter() {
          @override
          public boolean accept(file dir, string name) {
            return name.endswith("txt");
          }
        });
  }
 
  /**
   * 把指定文件或目錄轉(zhuǎn)換成指定的編碼
   *
   * @param filename
   *      要轉(zhuǎn)換的文件
   * @param fromcharsetname
   *      源文件的編碼
   * @param tocharsetname
   *      要轉(zhuǎn)換的編碼
   * @throws exception
   */
  public static void convert(string filename, string fromcharsetname,
      string tocharsetname) throws exception {
    convert(new file(filename), fromcharsetname, tocharsetname, null);
  }
 
  /**
   * 把指定文件或目錄轉(zhuǎn)換成指定的編碼
   *
   * @param file
   *      要轉(zhuǎn)換的文件或目錄
   * @param fromcharsetname
   *      源文件的編碼
   * @param tocharsetname
   *      要轉(zhuǎn)換的編碼
   * @throws exception
   */
  public static void convert(file file, string fromcharsetname,
      string tocharsetname) throws exception {
    convert(file, fromcharsetname, tocharsetname, null);
  }
 
  /**
   * 把指定文件或目錄轉(zhuǎn)換成指定的編碼
   *
   * @param file
   *      要轉(zhuǎn)換的文件或目錄
   * @param fromcharsetname
   *      源文件的編碼
   * @param tocharsetname
   *      要轉(zhuǎn)換的編碼
   * @param filter
   *      文件名過濾器
   * @throws exception
   */
  public static void convert(string filename, string fromcharsetname,
      string tocharsetname, filenamefilter filter) throws exception {
    convert(new file(filename), fromcharsetname, tocharsetname, filter);
  }
 
  /**
   * 把指定文件或目錄轉(zhuǎn)換成指定的編碼
   *
   * @param file
   *      要轉(zhuǎn)換的文件或目錄
   * @param fromcharsetname
   *      源文件的編碼
   * @param tocharsetname
   *      要轉(zhuǎn)換的編碼
   * @param filter
   *      文件名過濾器
   * @throws exception
   */
  public static void convert(file file, string fromcharsetname,
      string tocharsetname, filenamefilter filter) throws exception {
    if (file.isdirectory()) {
      file[] filelist = null;
      if (filter == null) {
        filelist = file.listfiles();
      } else {
        filelist = file.listfiles(filter);
      }
      for (file f : filelist) {
        convert(f, fromcharsetname, tocharsetname, filter);
      }
    } else {
      if (filter == null
          || filter.accept(file.getparentfile(), file.getname())) {
        string filecontent = getfilecontentfromcharset(file,
            fromcharsetname);
        savefile2charset(file, tocharsetname, filecontent);
      }
    }
  }
 
  /**
   * 以指定編碼方式讀取文件,返回文件內(nèi)容
   *
   * @param file
   *      要轉(zhuǎn)換的文件
   * @param fromcharsetname
   *      源文件的編碼
   * @return
   * @throws exception
   */
  public static string getfilecontentfromcharset(file file,
      string fromcharsetname) throws exception {
    if (!charset.issupported(fromcharsetname)) {
      throw new unsupportedcharsetexception(fromcharsetname);
    }
    inputstream inputstream = new fileinputstream(file);
    inputstreamreader reader = new inputstreamreader(inputstream,
        fromcharsetname);
    char[] chs = new char[(int) file.length()];
    reader.read(chs);
    string str = new string(chs).trim();
    reader.close();
    return str;
  }
 
  /**
   * 以指定編碼方式寫文本文件,存在會覆蓋
   *
   * @param file
   *      要寫入的文件
   * @param tocharsetname
   *      要轉(zhuǎn)換的編碼
   * @param content
   *      文件內(nèi)容
   * @throws exception
   */
  public static void savefile2charset(file file, string tocharsetname,
      string content) throws exception {
    if (!charset.issupported(tocharsetname)) {
      throw new unsupportedcharsetexception(tocharsetname);
    }
    outputstream outputstream = new fileoutputstream(file);
    outputstreamwriter outwrite = new outputstreamwriter(outputstream,
        tocharsetname);
    outwrite.write(content);
    outwrite.close();
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/mhmyqn/article/details/37917947

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产综合久久 | 香蕉视频成人在线观看 | 精品国产精品三级精品av网址 | 成人午夜毛片 | 91aiai| 亚洲午夜精品视频 | 国产日产欧产美韩av | 国内精品一区二区三区 | 国产精品一级 | 日韩精品一区二区三区四区五区 | av福利在线观看 | 久久久影视 | 在线一区| 亚洲国产精品一区二区三区 | 亚洲va欧美va人人爽成人影院 | 国内精品久久久久久久影视红豆 | 网站毛片 | 国产欧美精品一区二区 | 久久99精品久久久久婷婷暖91 | 欧美精品一区二区在线观看 | 日韩一区电影 | 在线a人片免费观看视频 | 蜜桃一区 | 日韩福利一区二区 | 人人干日日干 | 国产精品视频免费 | 毛片网页 | 国产成人在线看 | 免费黄网站在线观看 | 精品亚洲一区二区三区四区五区 | 欧美日韩视频在线 | www国产精品 | 午夜视频在线免费观看 | 国产美女网站 | 亚洲一区二区三 | 亚洲欧洲精品一区二区 | 欧美黄色一区 | 久久久精品影院 | 亚洲成a人片在线 | 亚洲成人av免费观看 | 91视频网|