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.jpeg 的 JPEG 图像文件,其中包含以下图表。

