JFreeChart文件接口
到目前為止,我們學習了如何使用靜態數據的創建不同類型的JFreeChart API圖表。但在生產環境中,數據被設置在文本文件的形式與一個預定義的格式,或者其直接來自數據庫。
本章將解釋如何我們可以看到從一個給定的位置給定的文本文件,一個簡單的數據,然後使用JFreeChart創建圖表。
業務數據
假設我們有一個文件名為mobile.txt,含有一個簡單的逗號分隔不同的移動品牌和銷售(每天單位)(,):
Iphone 5S, 20 Samsung Grand, 20 MOTO G, 40 Nokia Lumia, 10
基於文件圖表生成
下麵是基於文件 mobile.txt 提供的信息來創建一個餅圖的代碼:
import java.io.*; import java.util.StringTokenizer; import org.jfree.chart.ChartUtilities; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.data.general.DefaultPieDataset; public class PieChart_File { public static void main( String[ ] args )throws Exception { String mobilebrands[ ] = { "IPhone 5s" , "SamSung Grand" , "MotoG" , "Nokia Lumia" }; InputStream in = new FileInputStream( new File( "C:/temp/test.txt" ) ); BufferedReader reader = new BufferedReader(new InputStreamReader(in ) ); StringBuilder out = new StringBuilder(); String line; DefaultPieDataset dataset = new DefaultPieDataset(); while (( line = reader.readLine() ) != null ) { out.append( line ); } StringTokenizer s = new StringTokenizer( out.toString(), "," ); int i=0; while( s.hasMoreTokens( ) && ( mobilebrands [i] != null ) ) { dataset.setValue(mobilebrands[i], Double.parseDouble( s.nextToken( ) )); i++; } JFreeChart chart = ChartFactory.createPieChart( "Mobile Sales", // chart title dataset, // data true, // include legend true, false); int width = 560; /* Width of the image */ int height = 370; /* Height of the image */ File pieChart = new File( "pie_Chart.jpeg" ); ChartUtilities.saveChartAsJPEG( pieChart, chart, width, height); } }
讓我們保存上麵的Java代碼在PieChart_File.java文件,然後從命令提示符下編譯並運行它,如下所示:
$javac PieChart_File.java $java PieChart_File
如果一切順利,它會編譯並運行以創建包含下麵的圖表名為PieChart.jpegthat JPEG圖像文件。