java中主要使用charset這個類來判斷文件的編碼格式,代碼如下:
創(chuàng)新互聯(lián)專注于睢縣企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城開發(fā)。睢縣網(wǎng)站建設(shè)公司,為睢縣等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
package?com.ghj.packageoftool;
import?info.monitorenter.cpdetector.io.ASCIIDetector;
import?info.monitorenter.cpdetector.io.ByteOrderMarkDetector;
import?info.monitorenter.cpdetector.io.CodepageDetectorProxy;
import?info.monitorenter.cpdetector.io.JChardetFacade;
import?info.monitorenter.cpdetector.io.ParsingDetector;
import?info.monitorenter.cpdetector.io.UnicodeDetector;
import?java.io.ByteArrayInputStream;
import?java.io.File;
import?java.io.InputStream;
import?java.net.URL;
import?java.nio.charset.Charset;
/**
*?文件工具類
*?
*?@author?高煥杰
*/
public?class?FileTool?{
/**
*?獲取本地文件的編碼格式
*?
*?@param?file?要判斷的文件編碼格式
*?
*?@author?高煥杰
*/
public?static?String?getLocalFileEncode(File?localFile)?{
/*
*?cpDetector是探測器,它把探測任務(wù)交給具體的探測實現(xiàn)類的實例完成。
*?cpDetector內(nèi)置了一些常用的探測實現(xiàn)類,這些探測實現(xiàn)類的實例可以通過add方法?加進(jìn)來,如ParsingDetector、ByteOrderMarkDetector、JChardetFacade、ASCIIDetector、UnicodeDetector。
*?cpDetector按照“誰最先返回非空的探測結(jié)果,就以該結(jié)果為準(zhǔn)”的原則返回探測到的字符集編碼。cpDetector是基于統(tǒng)計學(xué)原理的,不保證完全正確。
*/
CodepageDetectorProxy?codepageDetector?=?CodepageDetectorProxy.getInstance();
codepageDetector.add(new?ParsingDetector(false));//ParsingDetector可用于檢查HTML、XML等文件或字符流的編碼,構(gòu)造方法中的參數(shù)用于指示是否顯示探測過程的詳細(xì)信息,為false不顯示。
codepageDetector.add(JChardetFacade.getInstance());//JChardetFacade封裝了由Mozilla組織提供的JChardet,它可以完成大多數(shù)文件的編碼?測定。所以,一般有了這個探測器就可滿足大多數(shù)項目的要求,如果你還不放心,可以再多加幾個探測器,比如下面的ASCIIDetector、UnicodeDetector等。
codepageDetector.add(new?ByteOrderMarkDetector());??
codepageDetector.add(ASCIIDetector.getInstance());//ASCIIDetector用于ASCII編碼測定
codepageDetector.add(UnicodeDetector.getInstance());//UnicodeDetector用于Unicode家族編碼的測定
Charset?charset?=?null;
try?{
charset?=?codepageDetector.detectCodepage(localFile.toURI().toURL());
if?(charset?!=?null){
return?charset.name();
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
return?null;
}
/**
*?獲得遠(yuǎn)程URL文件的編碼格式
*?
*?@param?url?遠(yuǎn)程文件的URL路徑
*?
*?@author?高煥杰
*/
public?static?String?getURLFileEncode(URL?url)?{
/*
*?cpDetector是探測器,它把探測任務(wù)交給具體的探測實現(xiàn)類的實例完成。
*?cpDetector內(nèi)置了一些常用的探測實現(xiàn)類,這些探測實現(xiàn)類的實例可以通過add方法?加進(jìn)來,如ParsingDetector、ByteOrderMarkDetector、JChardetFacade、ASCIIDetector、UnicodeDetector。
*?cpDetector按照“誰最先返回非空的探測結(jié)果,就以該結(jié)果為準(zhǔn)”的原則返回探測到的字符集編碼。cpDetector是基于統(tǒng)計學(xué)原理的,不保證完全正確。
*/
CodepageDetectorProxy?codepageDetector?=?CodepageDetectorProxy.getInstance();
codepageDetector.add(new?ParsingDetector(false));//ParsingDetector可用于檢查HTML、XML等文件或字符流的編碼,構(gòu)造方法中的參數(shù)用于指示是否顯示探測過程的詳細(xì)信息,為false不顯示。
codepageDetector.add(JChardetFacade.getInstance());//JChardetFacade封裝了由Mozilla組織提供的JChardet,它可以完成大多數(shù)文件的編碼?測定。所以,一般有了這個探測器就可滿足大多數(shù)項目的要求,如果你還不放心,可以再多加幾個探測器,比如下面的ASCIIDetector、UnicodeDetector等。
codepageDetector.add(ASCIIDetector.getInstance());//ASCIIDetector用于ASCII編碼測定
codepageDetector.add(UnicodeDetector.getInstance());//UnicodeDetector用于Unicode家族編碼的測定
Charset?charset?=?null;
try?{
charset?=?codepageDetector.detectCodepage(url);
if?(charset?!=?null){
return?charset.name();
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
return?null;
}
/**
*?獲得文件流的編碼格式
*?
*?@param?inputStream?文件流
*?
*?@author?高煥杰
*/
public?static?String?getInputStreamEncode(InputStream?inputStream)?{
/*
*?cpDetector是探測器,它把探測任務(wù)交給具體的探測實現(xiàn)類的實例完成。
*?cpDetector內(nèi)置了一些常用的探測實現(xiàn)類,這些探測實現(xiàn)類的實例可以通過add方法?加進(jìn)來,如ParsingDetector、ByteOrderMarkDetector、JChardetFacade、ASCIIDetector、UnicodeDetector。
*?cpDetector按照“誰最先返回非空的探測結(jié)果,就以該結(jié)果為準(zhǔn)”的原則返回探測到的字符集編碼。cpDetector是基于統(tǒng)計學(xué)原理的,不保證完全正確。
*/
CodepageDetectorProxy?codepageDetector?=?CodepageDetectorProxy.getInstance();
codepageDetector.add(new?ParsingDetector(false));//ParsingDetector可用于檢查HTML、XML等文件或字符流的編碼,構(gòu)造方法中的參數(shù)用于指示是否顯示探測過程的詳細(xì)信息,為false不顯示。
codepageDetector.add(JChardetFacade.getInstance());//JChardetFacade封裝了由Mozilla組織提供的JChardet,它可以完成大多數(shù)文件的編碼?測定。所以,一般有了這個探測器就可滿足大多數(shù)項目的要求,如果你還不放心,可以再多加幾個探測器,比如下面的ASCIIDetector、UnicodeDetector等。
codepageDetector.add(ASCIIDetector.getInstance());//ASCIIDetector用于ASCII編碼測定
codepageDetector.add(UnicodeDetector.getInstance());//UnicodeDetector用于Unicode家族編碼的測定
Charset?charset?=?null;
try?{
charset?=?codepageDetector.detectCodepage(inputStream,?0);
if?(charset?!=?null){
return?charset.name();
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
return?null;
}
/**
*?獲得字符串的編碼格式
*?
*?@param?stringValue?要判斷的文件編碼格式字符串
*?
*?@author?高煥杰
*/
public?static?String?getStringEncode(String?stringValue)?{
/*
*?cpDetector是探測器,它把探測任務(wù)交給具體的探測實現(xiàn)類的實例完成。
*?cpDetector內(nèi)置了一些常用的探測實現(xiàn)類,這些探測實現(xiàn)類的實例可以通過add方法?加進(jìn)來,如ParsingDetector、ByteOrderMarkDetector、JChardetFacade、ASCIIDetector、UnicodeDetector。
*?cpDetector按照“誰最先返回非空的探測結(jié)果,就以該結(jié)果為準(zhǔn)”的原則返回探測到的字符集編碼。cpDetector是基于統(tǒng)計學(xué)原理的,不保證完全正確。
*/
CodepageDetectorProxy?codepageDetector?=?CodepageDetectorProxy.getInstance();
codepageDetector.add(new?ParsingDetector(false));//ParsingDetector可用于檢查HTML、XML等文件或字符流的編碼,構(gòu)造方法中的參數(shù)用于指示是否顯示探測過程的詳細(xì)信息,為false不顯示。
codepageDetector.add(JChardetFacade.getInstance());//JChardetFacade封裝了由Mozilla組織提供的JChardet,它可以完成大多數(shù)文件的編碼?測定。所以,一般有了這個探測器就可滿足大多數(shù)項目的要求,如果你還不放心,可以再多加幾個探測器,比如下面的ASCIIDetector、UnicodeDetector等。
codepageDetector.add(ASCIIDetector.getInstance());//ASCIIDetector用于ASCII編碼測定
codepageDetector.add(UnicodeDetector.getInstance());//UnicodeDetector用于Unicode家族編碼的測定
Charset?charset?=?null;
try?{
InputStream?inputStream?=?new?ByteArrayInputStream(stringValue.getBytes());
charset?=?codepageDetector.detectCodepage(inputStream,?3);
if?(charset?!=?null){
return?charset.name();
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
return?null;
}
}
java課程設(shè)計題目及代碼分別是:
1、題目:計算器。設(shè)計內(nèi)容是設(shè)計一個圖形界面(GUI)的計算器應(yīng)用程序,完成簡單的算術(shù)運算。
設(shè)計要求是設(shè)計的計算器應(yīng)用程序可以完成家法、減法、乘法、除法和取余運算。且有小數(shù)點、正負(fù)號、求倒數(shù)、退格和清零功能。
2、代碼:
數(shù)字按鈕NumberButton類如下:
import java.awt.
import java.awt.event.
import javax.swing.
public class NumberButton extends Button.
{
int number.
public NumberButton(int number).
{
super(""+number).
this.number=number.
setForeground(Color.blue).
}
public int getNumber().
{
return number;
}
}
其它java課程設(shè)計題目及代碼是:
題目:華容道。編寫一個按鈕的子類,使用該子類創(chuàng)建的對象代表華容道中的人物。通過焦點事件控制人物顏色,當(dāng)人物獲得焦點時顏色為藍(lán)色,當(dāng)失去焦點時顏色為灰色。
通過鍵盤事件和鼠標(biāo)事件來實現(xiàn)曹操、關(guān)羽等人物的移動。當(dāng)人物上發(fā)生鼠標(biāo)事件或鍵盤事件時,如果鼠標(biāo)指針的位置是在人物的下方(也就是組件的下半部分)或按下鍵盤的“↓“鍵,該人物向下移動。向左、向右和向上的移動原理類似。
代碼是:
String name[]={"曹操","關(guān)羽","張","劉","馬","許","兵","兵","兵","兵"}.
for(int i=0;iname.length;i++).
{
person[i]=new Person(i,name[i]).
person[i].addKeyListener(this).
person[i].addMouseListener(this).
//? ? ?person[i].addFocusListener(new Person).
add(person[i]).
}
person[0].setBounds(104,54,100,100).
person[1].setBounds(104,154,100,50).
person[2].setBounds(54,154,50,100).
person[3].setBounds(204,154,50,100).
person[4].setBounds(54,54,50,100).
person[5].setBounds(204,54,50,100);
person[6].setBounds(54,254,50,50);
person[7].setBounds(204,254,50,50);
person[8].setBounds(104,204,50,50);
person[9].setBounds(154,204,50,50);
public class Matriculate {
private int score=400;
public int isMatriculate(Student stu){
if (stu.getIntgretResult()=score||(stu.getIntgretResult()=300stu.getSports()=90)) {
return 1;
}else {
return 0;
}
}
public static void main(String[] args) throws Exception {
Student stu1=new Student("zhangsan",1);
stu1.setIntgretResult(400);
Student stu2=new Student("lisi",2);
stu2.setSports(85);
stu2.setIntgretResult(356);
Matriculate m=new Matriculate();
int c1=m.isMatriculate(stu1);
if (c10) {
System.out.println("id:"+stu1.getId()+"\tname:"+stu1.getName()
+"\tIntgretResult:"+stu1.getIntgretResult()+"\tsports"+stu1.getSports());
System.out.println("被錄取");
}
int c2=m.isMatriculate(stu2);
if (c20) {
System.out.println("id:"+stu2.getId()+"\tname:"+stu2.getName()
+"\tIntgretResult:"+stu2.getIntgretResult()+"\tsports"+stu2.getSports());
System.out.println("被錄取");
}
}
}
class School{
public School(){}
public School(String schoolname, double scoreLine) {
this.schoolname = schoolname;
this.scoreLine = scoreLine;
}
private String schoolname;
private double scoreLine;
public String getSchoolname() {
return schoolname;
}
public double getScoreLine() {
return scoreLine;
}
}
class Student{
public Student(){}
public Student(String name, int id) {
this.name = name;
this.id = id;
}
private String name;
private int id;
private double intgretResult;
private int sports;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getIntgretResult() {
return intgretResult;
}
public void setIntgretResult(double intgretResult) {
this.intgretResult = intgretResult;
}
public int getSports() {
return sports;
}
public void setSports(int sports) {
this.sports = sports;
}
}
public class Message {
public static void main(String[] args){
String name;
int age;
System.out.println("請輸入姓名,回車結(jié)束:"); //提示輸入
Scanner sc = new Scanner(System.in);
name = sc.nextLine(); //為變量賦值
System.out.println("請輸入年齡,回車結(jié)束:");
age = sc.nextInt();
System.out.println("姓名:"+name+"\n年齡:"+age); //打印姓名及年齡
}
}
//不知道這樣行么?