検索
ホームページJava&#&チュートリアル非常に便利な Java プログラムのスニペット

非常に便利な Java プログラムのスニペット

Nov 26, 2016 pm 01:35 PM
javaJavaプログラム

下面是非常有用的Java程序片段,希望能对你有用。

1. 字符串有整型的相互转换

String a = String.valueOf(2);   //integer to numeric string 
int i = Integer.parseInt(a); //numeric string to an int

 2. 向文件末尾添加内容

BufferedWriter out = null; 
try { 
    out = new BufferedWriter(new FileWriter(”filename”, true)); 
    out.write(”aString”); 
} catch (IOException e) { 
    // error processing code 
} finally { 
    if (out != null) { 
        out.close(); 
    } 
}

3. 得到当前方法的名字

String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();

   

4. 转字符串到日期

java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);

   

或者是:

SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" ); 
Date date = format.parse( myString );

   

5. 使用JDBC链接Oracle

public class OracleJdbcTest 
{ 
    String driverClass = "oracle.jdbc.driver.OracleDriver"; 
 
    Connection con; 
 
    public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException 
    { 
        Properties props = new Properties(); 
        props.load(fs); 
        String url = props.getProperty("db.url"); 
        String userName = props.getProperty("db.user"); 
        String password = props.getProperty("db.password"); 
        Class.forName(driverClass); 
 
        con=DriverManager.getConnection(url, userName, password); 
    } 
 
    public void fetch() throws SQLException, IOException 
    { 
        PreparedStatement ps = con.prepareStatement("select SYSDATE from dual"); 
        ResultSet rs = ps.executeQuery(); 
 
        while (rs.next()) 
        { 
            // do the thing you do 
        } 
        rs.close(); 
        ps.close(); 
    } 
 
    public static void main(String[] args) 
    { 
        OracleJdbcTest test = new OracleJdbcTest(); 
        test.init(); 
        test.fetch(); 
    } 
}

   

6. 把 Java util.Date 转成 sql.Date

java.util.Date utilDate = new java.util.Date(); 
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

   

7. 使用NIO进行快速的文件拷贝

public static void fileCopy( File in, File out ) 
            throws IOException 
    { 
        FileChannel inChannel = new FileInputStream( in ).getChannel(); 
        FileChannel outChannel = new FileOutputStream( out ).getChannel(); 
        try
        { 
//          inChannel.transferTo(0, inChannel.size(), outChannel);      // original -- apparently has trouble copying large files on Windows 
 
            // magic number for Windows, 64Mb - 32Kb) 
            int maxCount = (64 * 1024 * 1024) - (32 * 1024); 
            long size = inChannel.size(); 
            long position = 0; 
            while ( position < size ) 
            { 
               position += inChannel.transferTo( position, maxCount, outChannel ); 
            } 
        } 
        finally
        { 
            if ( inChannel != null ) 
            { 
               inChannel.close(); 
            } 
            if ( outChannel != null ) 
            { 
                outChannel.close(); 
            } 
        } 
    }

 

8. 创建图片的缩略图

private void createThumbnail(String filename, int thumbWidth, int thumbHeight, int quality, String outFilename) 
        throws InterruptedException, FileNotFoundException, IOException 
    { 
        // load image from filename 
        Image image = Toolkit.getDefaultToolkit().getImage(filename); 
        MediaTracker mediaTracker = new MediaTracker(new Container()); 
        mediaTracker.addImage(image, 0); 
        mediaTracker.waitForID(0); 
        // use this to test for errors at this point: System.out.println(mediaTracker.isErrorAny()); 
 
        // determine thumbnail size from WIDTH and HEIGHT 
        double thumbRatio = (double)thumbWidth / (double)thumbHeight; 
        int imageWidth = image.getWidth(null); 
        int imageHeight = image.getHeight(null); 
        double imageRatio = (double)imageWidth / (double)imageHeight; 
        if (thumbRatio < imageRatio) { 
            thumbHeight = (int)(thumbWidth / imageRatio); 
        } else { 
            thumbWidth = (int)(thumbHeight * imageRatio); 
        } 
 
        // draw original image to thumbnail image object and 
        // scale it to the new size on-the-fly 
        BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB); 
        Graphics2D graphics2D = thumbImage.createGraphics(); 
        graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); 
        graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null); 
 
        // save thumbnail image to outFilename 
        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename)); 
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); 
        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage); 
        quality = Math.max(0, Math.min(quality, 100)); 
        param.setQuality((float)quality / 100.0f, false); 
        encoder.setJPEGEncodeParam(param); 
        encoder.encode(thumbImage); 
        out.close(); 
    }

 9. 创建 JSON 格式的数据

请先阅读这篇文章 了解一些细节,

并下面这个JAR 文件:json-rpc-1.0.jar (75 kb)

import org.json.JSONObject; 
... 
... 
JSONObject json = new JSONObject(); 
json.put("city", "Mumbai"); 
json.put("country", "India"); 
... 
String output = json.toString(); 
...

   

10. 使用iText JAR生成PDF

阅读这篇文章 了解更多细节

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.OutputStream; 
import java.util.Date; 
 
import com.lowagie.text.Document; 
import com.lowagie.text.Paragraph; 
import com.lowagie.text.pdf.PdfWriter; 
 
public class GeneratePDF { 
 
    public static void main(String[] args) { 
        try { 
            OutputStream file = new FileOutputStream(new File("C:\\Test.pdf")); 
 
            Document document = new Document(); 
            PdfWriter.getInstance(document, file); 
            document.open(); 
            document.add(new Paragraph("Hello Kiran")); 
            document.add(new Paragraph(new Date().toString())); 
 
            document.close(); 
            file.close(); 
 
        } catch (Exception e) { 
 
            e.printStackTrace(); 
        } 
    } 
}

 

11. HTTP 代理设置

阅读这篇 文章 了解更多细节。

System.getProperties().put("http.proxyHost", "someProxyURL"); 
System.getProperties().put("http.proxyPort", "someProxyPort"); 
System.getProperties().put("http.proxyUser", "someUserName"); 
System.getProperties().put("http.proxyPassword", "somePassword");

   

12. 单实例Singleton 示例

请先阅读这篇文章 了解更多信息

public class SimpleSingleton { 
    private static SimpleSingleton singleInstance =  new SimpleSingleton(); 
 
    //Marking default constructor private 
    //to avoid direct instantiation. 
    private SimpleSingleton() { 
    } 
 
    //Get instance for class SimpleSingleton 
    public static SimpleSingleton getInstance() { 
 
        return singleInstance; 
    } 
}

   

另一种实现

public enum SimpleSingleton { 
    INSTANCE; 
    public void doSomething() { 
    } 
} 
 
//Call the method from Singleton: 
SimpleSingleton.INSTANCE.doSomething();

   

13. 抓屏程序

阅读这篇文章 获得更多信息。

import java.awt.Dimension; 
import java.awt.Rectangle; 
import java.awt.Robot; 
import java.awt.Toolkit; 
import java.awt.image.BufferedImage; 
import javax.imageio.ImageIO; 
import java.io.File; 
 
... 
 
public void captureScreen(String fileName) throws Exception { 
 
   Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
   Rectangle screenRectangle = new Rectangle(screenSize); 
   Robot robot = new Robot(); 
   BufferedImage image = robot.createScreenCapture(screenRectangle); 
   ImageIO.write(image, "png", new File(fileName)); 
 
} 
...

 

14. 列出文件和目录

File dir = new File("directoryName"); 
  String[] children = dir.list(); 
  if (children == null) { 
      // Either dir does not exist or is not a directory 
  } else { 
      for (int i=0; i < children.length; i++) { 
          // Get filename of file or directory 
          String filename = children[i]; 
      } 
  } 
 
  // It is also possible to filter the list of returned files. 
  // This example does not return any files that start with `.&#39;. 
  FilenameFilter filter = new FilenameFilter() { 
      public boolean accept(File dir, String name) { 
          return !name.startsWith("."); 
      } 
  }; 
  children = dir.list(filter); 
 
  // The list of files can also be retrieved as File objects 
  File[] files = dir.listFiles(); 
 
  // This filter only returns directories 
  FileFilter fileFilter = new FileFilter() { 
      public boolean accept(File file) { 
          return file.isDirectory(); 
      } 
  }; 
  files = dir.listFiles(fileFilter);

   

15. 创建ZIP和JAR文件

import java.util.zip.*; 
import java.io.*; 
 
public class ZipIt { 
    public static void main(String args[]) throws IOException { 
        if (args.length < 2) { 
            System.err.println("usage: java ZipIt Zip.zip file1 file2 file3"); 
            System.exit(-1); 
        } 
        File zipFile = new File(args[0]); 
        if (zipFile.exists()) { 
            System.err.println("Zip file already exists, please try another"); 
            System.exit(-2); 
        } 
        FileOutputStream fos = new FileOutputStream(zipFile); 
        ZipOutputStream zos = new ZipOutputStream(fos); 
        int bytesRead; 
        byte[] buffer = new byte[1024]; 
        CRC32 crc = new CRC32(); 
        for (int i=1, n=args.length; i < n; i++) { 
            String name = args[i]; 
            File file = new File(name); 
            if (!file.exists()) { 
                System.err.println("Skipping: " + name); 
                continue; 
            } 
            BufferedInputStream bis = new BufferedInputStream( 
                new FileInputStream(file)); 
            crc.reset(); 
            while ((bytesRead = bis.read(buffer)) != -1) { 
                crc.update(buffer, 0, bytesRead); 
            } 
            bis.close(); 
            // Reset to beginning of input stream 
            bis = new BufferedInputStream( 
                new FileInputStream(file)); 
            ZipEntry entry = new ZipEntry(name); 
            entry.setMethod(ZipEntry.STORED); 
            entry.setCompressedSize(file.length()); 
            entry.setSize(file.length()); 
            entry.setCrc(crc.getValue()); 
            zos.putNextEntry(entry); 
            while ((bytesRead = bis.read(buffer)) != -1) { 
                zos.write(buffer, 0, bytesRead); 
            } 
            bis.close(); 
        } 
        zos.close(); 
    } 
}

 

16. 解析/读取XML 文件

XML文件

<?xml version="1.0"?>
<students>
    <student>
        <name>John</name>
        <grade>B</grade>
        <age>12</age>
    </student>
    <student>
        <name>Mary</name>
        <grade>A</grade>
        <age>11</age>
    </student>
    <student>
        <name>Simon</name>
        <grade>A</grade>
        <age>18</age>
    </student>
</students>

   

Java代码

package net.viralpatel.java.xmlparser; 
 
import java.io.File; 
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
 
import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.Node; 
import org.w3c.dom.NodeList; 
 
public class XMLParser { 
 
    public void getAllUserNames(String fileName) { 
        try { 
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
            DocumentBuilder db = dbf.newDocumentBuilder(); 
            File file = new File(fileName); 
            if (file.exists()) { 
                Document doc = db.parse(file); 
                Element docEle = doc.getDocumentElement(); 
 
                // Print root element of the document 
                System.out.println("Root element of the document: "
                        + docEle.getNodeName()); 
 
                NodeList studentList = docEle.getElementsByTagName("student"); 
 
                // Print total student elements in document 
                System.out 
                        .println("Total students: " + studentList.getLength()); 
 
                if (studentList != null && studentList.getLength() > 0) { 
                    for (int i = 0; i < studentList.getLength(); i++) { 
 
                        Node node = studentList.item(i); 
 
                        if (node.getNodeType() == Node.ELEMENT_NODE) { 
 
                            System.out 
                                    .println("====================="); 
 
                            Element e = (Element) node; 
                            NodeList nodeList = e.getElementsByTagName("name"); 
                            System.out.println("Name: "
                                    + nodeList.item(0).getChildNodes().item(0) 
                                            .getNodeValue()); 
 
                            nodeList = e.getElementsByTagName("grade"); 
                            System.out.println("Grade: "
                                    + nodeList.item(0).getChildNodes().item(0) 
                                            .getNodeValue()); 
 
                            nodeList = e.getElementsByTagName("age"); 
                            System.out.println("Age: "
                                    + nodeList.item(0).getChildNodes().item(0) 
                                            .getNodeValue()); 
                        } 
                    } 
                } else { 
                    System.exit(1); 
                } 
            } 
        } catch (Exception e) { 
            System.out.println(e); 
        } 
    } 
    public static void main(String[] args) { 
 
        XMLParser parser = new XMLParser(); 
        parser.getAllUserNames("c:\\test.xml"); 
    } 
}

17. 把 Array 转换成 Map 

import java.util.Map; 
import org.apache.commons.lang.ArrayUtils; 
 
public class Main { 
 
  public static void main(String[] args) { 
    String[][] countries = { { "United States", "New York" }, { "United Kingdom", "London" }, 
        { "Netherland", "Amsterdam" }, { "Japan", "Tokyo" }, { "France", "Paris" } }; 
 
    Map countryCapitals = ArrayUtils.toMap(countries); 
 
    System.out.println("Capital of Japan is " + countryCapitals.get("Japan")); 
    System.out.println("Capital of France is " + countryCapitals.get("France")); 
  } 
}

   

18. 发送邮件

import javax.mail.*; 
import javax.mail.internet.*; 
import java.util.*; 
 
public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException 
{ 
    boolean debug = false; 
 
     //Set the host smtp address 
     Properties props = new Properties(); 
     props.put("mail.smtp.host", "smtp.example.com"); 
 
    // create some properties and get the default Session 
    Session session = Session.getDefaultInstance(props, null); 
    session.setDebug(debug); 
 
    // create a message 
    Message msg = new MimeMessage(session); 
 
    // set the from and to address 
    InternetAddress addressFrom = new InternetAddress(from); 
    msg.setFrom(addressFrom); 
 
    InternetAddress[] addressTo = new InternetAddress[recipients.length]; 
    for (int i = 0; i < recipients.length; i++) 
    { 
        addressTo[i] = new InternetAddress(recipients[i]); 
    } 
    msg.setRecipients(Message.RecipientType.TO, addressTo); 
 
    // Optional : You can also set your custom headers in the Email if you Want 
    msg.addHeader("MyHeaderName", "myHeaderValue"); 
 
    // Setting the Subject and Content Type 
    msg.setSubject(subject); 
    msg.setContent(message, "text/plain"); 
    Transport.send(msg); 
}

19. 发送代数据的HTTP 请求

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.URL; 
 
public class Main { 
    public static void main(String[] args)  { 
        try { 
            URL my_url = new URL("http://coolshell.cn/"); 
            BufferedReader br = new BufferedReader(new InputStreamReader(my_url.openStream())); 
            String strTemp = ""; 
            while(null != (strTemp = br.readLine())){ 
            System.out.println(strTemp); 
        } 
        } catch (Exception ex) { 
            ex.printStackTrace(); 
        } 
    } 
}

   

20. 改变数组的大小

/**
* Reallocates an array with a new size, and copies the contents
* of the old array to the new array.
* @param oldArray  the old array, to be reallocated.
* @param newSize   the new array size.
* @return          A new array with the same contents.
*/
private static Object resizeArray (Object oldArray, int newSize) { 
   int oldSize = java.lang.reflect.Array.getLength(oldArray); 
   Class elementType = oldArray.getClass().getComponentType(); 
   Object newArray = java.lang.reflect.Array.newInstance( 
         elementType,newSize); 
   int preserveLength = Math.min(oldSize,newSize); 
   if (preserveLength > 0) 
      System.arraycopy (oldArray,0,newArray,0,preserveLength); 
   return newArray; 
} 
 
// Test routine for resizeArray(). 
public static void main (String[] args) { 
   int[] a = {1,2,3}; 
   a = (int[])resizeArray(a,5); 
   a[3] = 4; 
   a[4] = 5; 
   for (int i=0; i<a.length; i++) 
      System.out.println (a[i]); 
}

  

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
プラットフォームの独立性は、エンタープライズレベルのJavaアプリケーションにどのように利益をもたらしますか?プラットフォームの独立性は、エンタープライズレベルのJavaアプリケーションにどのように利益をもたらしますか?May 03, 2025 am 12:23 AM

Javaは、プラットフォームの独立性により、エンタープライズレベルのアプリケーションで広く使用されています。 1)プラットフォームの独立性は、Java Virtual Machine(JVM)を介して実装されているため、Javaをサポートする任意のプラットフォームでコードを実行できます。 2)クロスプラットフォームの展開と開発プロセスを簡素化し、柔軟性とスケーラビリティを高めます。 3)ただし、パフォーマンスの違いとサードパーティライブラリの互換性に注意を払い、純粋なJavaコードやクロスプラットフォームテストの使用などのベストプラクティスを採用する必要があります。

プラットフォームの独立性を考慮して、JavaはIoT(Thingのインターネット)デバイスの開発においてどのような役割を果たしますか?プラットフォームの独立性を考慮して、JavaはIoT(Thingのインターネット)デバイスの開発においてどのような役割を果たしますか?May 03, 2025 am 12:22 AM

javaplaysasificanificantduetduetoitsplatformindepence.1)itallowscodetobewrittendunonvariousdevices.2)java'secosystemprovidesutionforiot.3)そのセキュリティフィートルセンハンス系

Javaでプラットフォーム固有の問題に遭遇したシナリオと、どのように解決したかを説明してください。Javaでプラットフォーム固有の問題に遭遇したシナリオと、どのように解決したかを説明してください。May 03, 2025 am 12:21 AM

TheSolution to HandlefilepathsaCrosswindossandlinuxinjavaistousepaths.get()fromthejava.nio.filepackage.1)usesystem.getProperty( "user.dir")およびhearterativepathtoconstructurctthefilepath.2)

開発者にとってJavaのプラットフォーム独立性の利点は何ですか?開発者にとってJavaのプラットフォーム独立性の利点は何ですか?May 03, 2025 am 12:15 AM

java'splatformentepenceissificAntiveSifcuseDeverowsDevelowSowRitecodeOdeonceantoniTONAnyPlatformwsajvm.これは「writeonce、runanywhere」(wora)adportoffers:1)クロスプラットフォームの複雑性、deploymentacrossdiferentososwithusisues; 2)re

さまざまなサーバーで実行する必要があるWebアプリケーションにJavaを使用することの利点は何ですか?さまざまなサーバーで実行する必要があるWebアプリケーションにJavaを使用することの利点は何ですか?May 03, 2025 am 12:13 AM

Javaは、クロスサーバーWebアプリケーションの開発に適しています。 1)Javaの「Write and、Run Averywhere」哲学は、JVMをサポートするあらゆるプラットフォームでコードを実行します。 2)Javaには、開発プロセスを簡素化するために、SpringやHibernateなどのツールを含む豊富なエコシステムがあります。 3)Javaは、パフォーマンスとセキュリティにおいて優れたパフォーマンスを発揮し、効率的なメモリ管理と強力なセキュリティ保証を提供します。

JVMは、Javaの「Write and、Run Anywhere」(Wora)機能にどのように貢献しますか?JVMは、Javaの「Write and、Run Anywhere」(Wora)機能にどのように貢献しますか?May 02, 2025 am 12:25 AM

JVMは、バイトコード解釈、プラットフォームに依存しないAPI、動的クラスの負荷を介してJavaのWORA機能を実装します。 2。標準API抽象オペレーティングシステムの違い。 3.クラスは、実行時に動的にロードされ、一貫性を確保します。

Javaの新しいバージョンは、プラットフォーム固有の問題にどのように対処しますか?Javaの新しいバージョンは、プラットフォーム固有の問題にどのように対処しますか?May 02, 2025 am 12:18 AM

Javaの最新バージョンは、JVMの最適化、標準的なライブラリの改善、サードパーティライブラリサポートを通じて、プラットフォーム固有の問題を効果的に解決します。 1)Java11のZGCなどのJVM最適化により、ガベージコレクションのパフォーマンスが向上します。 2)Java9のモジュールシステムなどの標準的なライブラリの改善は、プラットフォーム関連の問題を削減します。 3)サードパーティライブラリは、OpenCVなどのプラットフォーム最適化バージョンを提供します。

JVMによって実行されたバイトコード検証のプロセスを説明します。JVMによって実行されたバイトコード検証のプロセスを説明します。May 02, 2025 am 12:18 AM

JVMのバイトコード検証プロセスには、4つの重要な手順が含まれます。1)クラスファイル形式が仕様に準拠しているかどうかを確認し、2)バイトコード命令の有効性と正確性を確認し、3)データフロー分析を実行してタイプの安全性を確保し、検証の完全性とパフォーマンスのバランスをとる。これらの手順を通じて、JVMは、安全で正しいバイトコードのみが実行されることを保証し、それによりプログラムの完全性とセキュリティを保護します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター