[备忘] Java BigDecimal 转换 为 字节 数组

Java BigDecimal Serialization 手动序列化

直接看代码:

代码如下:

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.math.BigDecimal;
import java.math.BigInteger;

public class TestBigDecimalSerialization
{
   static String[] TESTING_VALUES = new String[]
   {
      "999999999998888888888888888888888888.2323", 
      "0", 
      "0.0000000001", 
      "0.000", 
      "7603.4919740918050", 
      "7819.1205269716930", 
      "-9506.8541926295180",
   };

	public static void main(String[] args) {
		String sFile = "tmptest.tmp";

		BigDecimal[] bds1 = toBigDecimals(TESTING_VALUES);

		// 先写到文件中
		write(bds1, sFile);

		// 再从文件中读出来
		BigDecimal[] bds2 = read(sFile);

		// 再一一比较
		for (int i = 0; i < bds2.length; i++) {
			if (bds2[i].equals(bds1[i])
					&& bds2[i].toPlainString().equals(TESTING_VALUES[i])) {

			} else {
				System.out.println("fail to seriable " + TESTING_VALUES[i]
						+ ", value is " + bds2[i].toPlainString());
			}
		}

		new File(sFile).delete();
	}

	static void write(BigDecimal[] abd, String sFile) {
		try {
			FileOutputStream fos = new FileOutputStream(sFile);
			DataOutputStream dos = new DataOutputStream(fos);
			int iValues = abd.length;

			dos.writeInt(iValues);

			for (int i = 0; i < iValues; i++) {
				BigDecimal bd = abd[i];

				// 这儿是关键
				byte[] aBytes = bd.unscaledValue().toByteArray();
				short iBytes = (short) aBytes.length;
				short iScale = (short) bd.scale();

				dos.writeShort(iBytes);
				dos.write(aBytes);
				dos.writeShort(iScale);
			}

			if (dos != null)
				dos.close();
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}

	static BigDecimal[] read(String sFile) {
		BigDecimal[] abd = null;

		try {
			FileInputStream fis = new FileInputStream(sFile);
			DataInputStream dis = new DataInputStream(fis);
			int iValues = dis.readInt();

			abd = new BigDecimal[iValues];

			for (int i = 0; i < iValues; i++) {
				// //这儿是关键
				int iBytes = dis.readShort();
				byte[] aBytes = new byte[iBytes];

				dis.read(aBytes);

				int iScale = dis.readShort();

				abd[i] = new BigDecimal(new BigInteger(aBytes), iScale);
			}

			if (dis != null)
				dis.close();
		} catch (Throwable t) {
			t.printStackTrace();
		}

		return abd;
	}

	static BigDecimal[] toBigDecimals(String[] strValues) {
		int iLen = strValues == null ? 0 : strValues.length;
		BigDecimal[] abd = new BigDecimal[iLen];
		for (int i = 0; i < iLen; i++) {
			abd[i] = new BigDecimal(strValues[i]);
		}
		return abd;
	}
}
smithfox | Friday 03 June 2011 at 4:20 pm | | Java        | Used tags: , , ,

eight comments

jiage110

FileOutputStream fos = new FileOutputStream(sFile);
DataOutputStream dos = new DataOutputStream(fos); 这里不用文件缓冲,采用ObjectOutpuStream在内存中进行效率会更好

jiage110, - 20-09-’11 13:12
smithfox

这里不适合用 ObjectOutputStream, 因为重点是 自己写的,可以控制的 BigDecimal到 byte[]之间的转换.
ObjectOutputStream是调用了 BigDecimal这个类的自己序列化, 相当于是一个黑盒.

smithfox, (URL) - 20-09-’11 16:03
louis vuitton iphone 6 cases

Fortunately there are some handy tools built into Android Lollipop and some excellent third-party applications that can help you make sure all your data is safely copied elsewhere.

louis vuitton iphone 6 cases, (URL) - 20-04-’15 18:34
Louis Vuitton iPhone 6 Wallet Case

New episodes of Happy Hour are available every Wednesday. As mentioned, you can download this podcast via iTunes or plug in our RSS feed link into your favorite podcasting app.

Louis Vuitton iPhone 6 Wallet Case, (URL) - 08-10-’15 21:19
entretien ménager résidentiel et commercial montreal rive nord et rive sud

service de femme de ménage
Professionnelle de l’entretien, notre dynamique entreprise saura réaliser pour vous l’ensemble des travaux ménagers.

G.E.M. s’engage sur une prestation de qualité !

Notre équipe dde spécialistes chevronnés accomplira un travail
à la fois soigné, rapide et économique.
De plus, nous utilisons exclusivement des produits écologiques et
hautemnent performants, iasus des toutes dernières technologies.

La vie moderne véhicule aussi de lourdes menaces. D’apparence
inoffensive, meubles, appareils ménagers, matériaux de construction, jouets ou
objets familiers peuvent dégager dess phtalates ou
autres redoutables composés chimiques.

Franchise de Nettooyage Résidentiel et Commercial, service de femme de ménage ,entretien ménager commercial,entretien ménager commercial,
ménage résidentiel, service d’entretien ménager montréal
Nous aidxons less persoknnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du
nettoyage commercial et de la maintenance.

En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi que d’une aide
apportée par un modèle d’affaires éprouvé
vous assurant de travailler avec un leader du domaine disposant de l’expérience et la stabilité.

Vous disiez augmentez vos revenus afin d’améliorer votre
quotidien ? Faites Appel a G.E.M Ménage! service dee femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal, servicee de femme de ménage ,entretien ménager commercial,entretien ménager commercial,
ménage résidentiel, service d’entretien ménager montréal
Franhises de Nettoyage Résidentiel et Commercial disponible Partout A Montréal
,Rivee Nord et Rive Sud.

Financement Sans Intérêt par G.E.M .
Un dépôt est oblikgatoire

Un Investissement de 24 000$ Vous Rapporte (4800$ et plus de Revenus
par Mois)!

Matériel et formation fourni

Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à
dewvenir dess professionnels du nettoyagee commercial et de la maintenance.
En rejoignant notre réseau d’entreprises, vous bénéficierez d’un vantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires éprouvé vous assurant
de travailler avec unn leadder du domaine disposant de
l’expérience et la stabilité.

G.E.M Ménage vous offre l’opportunité de travailler pendant la
journée de lundi a vendredi .

G.E.M Vouus propose dess contrats d’entretien ménager avec des horaires
souples et un revenu garanti.

Pour les personnes libres,les nouveaux arrivants ou les sans-emplois G.E.M peut favoriser votre
accès au marché du travail !

G.E.M vous propose des contrats stables et rémunérateurs!

Dans le secteur résidentiel idéal pour un couple, ou un homme seul dans le secteur commercial

Vous débuter des maintenant

Des techniques et méthodes de travail éprouvées.

Une aide à la constitution ouu à l’enregistrement de
leur entreprise.
Dees territoires d’exercice protégés.
Entreprise clés een main.
Un garantie quii protège votre investissement

Exigences de l’entrée de notre réseau :
Les demandes sont examinées attentivment et une enquête relative à
la candidature est menée.
Les candidats doivent passer une entrevue de sélection.
Avant tout début d’activité, les candidats doivent assister à des sessions de formation.

Au G.E.M. nous nous assurons quue nnos franchisés puissent offrir à leurs clients
un service professionnel d’une qualité supérieure à celle de laa concurrence.

Franchise disponible au résidentiel et commercial

N’hésitez pas à noous contacter
469 Jean-Talon Ouest Suite # 222
Montreal QC
gemmenage.net
gemmenage.com

entretien ménager résidentiel et commercial montreal rive nord et rive sud, (URL) - 10-08-’17 01:03
nettoyage commercial

nettoyage commercial, compagnie dde menage rive sud, serrvice de
femme de ménage
Professionnelle de l’entretien, notre dynamique entreprise saura réaliser pour vous l’ensemble
des travaux ménagers.
G.E.M. s’engage sur une prestation de qualité !

Notre équipe de spécialistes chevronnés accomplira un travail à la fois soigné, rapide et économique.

De plus, nous utilisons exclusivement des produits écologiques et hautement performants, issus
des toutes dernières technologies.
La vie moderne véhicule aussi de lourdes menaces. D’apparence inoffensive, meubles,
appareils ménagers, matériaux de construction, jouets ou
objets familiers peuvent dégager des phtalates ou autres redoutables composés chimiques.

G.E.M Ménage s’adapte.

Choisissez le jour à votre convenance.

Le choix le plus populaire est une fois par semaine. Toutefois,
vous êtes libre de déterminer votrte fréquence moindre, toutes les deux semaines, une
fois par mois…. G.E.M MÉNAGE s’adapte à votre besoin et à votre budget.

Nous individualisons le service dee nettoyage. Notre expérience nous a enseigné que chaque immeuuble ou maison est unique, comme les
gens qui y vivent.

Le prix pour nettoyerr un immeuble ou uune maison est basée sur
plusieurs facteurs. La taille du lieu et la fréquence de nettoyage sont pis en compte.
Cependant, nous intégrons également dans notre analyse, les surfaces à nettoyer et à désinfecter, la présence
oou non d’animaux de compagnie, l’encombrement du lieu.

Pour vous proposer un devis qui conviendra à votre budget,
G.E.M MÉNAGE vous rencontre chez vous afin de prendre connaissance du
lieu et mieux comprendre vos besoins ett exigences dde nettoyage.Si
beaucoup pensent que le nettoyage dde bureaux se
résume à passer l’aspirateur, nettoyer les vitrines et vider les poubelles,
En faisant appel à une entreprise telle que G.E.M Québec, vous avez la garantie d’un nettoyage régulier eet de qualité professionnelle.

Les prestations sont effectuées par des agents d’entretien qualifiés quui ont formés aux techniques dee nettoyage propres à vos types de locaux.

Pour satisfaire tous vos besoins en matière
d’entretien ménager, G.E.M vous offre un serviche d’entretien et de nettoyage résidentiel de haute
qualité à un prix parfaitement compétitif. Tout le ménage
de votre domicile est pensé et réalisé dans ses moindres détails.

Lorsque vous remettez l’entretien de votre maison aux mains méticuleuses
de G.E.M, rien n’est laissé au hasard.

Chaque pièce est importante, et ce dans ses moindres recoins.
Nonn seulement nous allions notre savoir-faire à une efficacité qui dépassera vos attentes, mais chaque entretien ménager est effectué avec la plus grande discrétion.Service d’entretien eet
dde nettoyage résidentielune entreprise dee nettoyage industriel spécialisée dans
la propreté de vos locaux professionnels (immeubles,
bureaux, locaux industriels).L’équipe est composée d’agents dee nettoyage qualifiés prêts à intervenir sur
tous les types de chantiers,, après l’élaboration d’un devvis de nettoyage complet et précis, qu’il s’agisse d’une
intervention de nettoyage particulier ou d’un nettoyage de
locaux professionnels.De l’entretien courant des sols, vitres et meubles – aau nettoyage très spécifique de matériel professionnel ;
G,E.M prend en charge l’intégralité de votre
entretien ménager. Que cee soit pour vos bureaux, hôtels et surfaces de ventes qqui demandent un entretien méticuleux car représentants de vktre enseigne ou espaces communs d’immeubles qui
connaissent un fort taux de passage, G.E.M MÉNAGE répond à vos besoins.

propose dees prestations avec une équipe hautement qualifiée ainsi que
du matériel de nettoyage répondant à tous les besoins de nettoyage dans les
bureaux.Les prestations sont effectuées par ddes agents d’entretien qualifiésqui sont formés aaux techniques de netfoyage propres à vos types de
locaux. Il eest importabt de noter que les intervenantrs sont employés directement par g.e.m et non par voss soins
Si beaucoup pensent que le nettoyage de bureaux se résume à
passer l’aspirateur, nettoyer les vitrines et vider les poubelles,entretien ménager résidentiel
Franchise de Nettoyage Résidentiel et Commercial, service de femm de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel,
service d’entretien ménager montréal
Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du
nettoyage commercial et de la maintenance. En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel
ainsi que d’une aide apportée par un modèle d’affaireséprouvé vous assurant
de travailldr avec un leader du domaine isposant de l’expérience et la stabilité.

Vous disiez augmentez vos revenus afin d’améliorer votre quotidien ?
Faites Appel a G.E.M Ménage! service de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal, service de femmne dde ménage ,entretien ménager commercial,entretien ménager
commercial, ménage résidentiel, service d’entretien ménager montréal
Franchises de Nettoyage Résidentiel et Commercial disponible Partout A Montréal ,Rivve Nord
et Rive Sud.

Financement Sans Intérêt par G.E.M .
Un dépôt est obligatoire

Un Investissement de 24 000$ Vous Rapporte (4800$ ett plus de Revenus par Mois)!

Matériel et formation fourni

Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du
nettoyage commercial et de la maintenance. En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel
ainsi que d’une aide apportée par un modèle d’affaires éprouvé vous assurant de travailler ave un leader du domaine disposant de
l’expérience eet la stabilité.

G.E.M Ménage vous offre l’opportunité de travailler
pendant la journée de lundi a vendredi .

G.E.M Vous propose des contrats d’entretien ménager avec des horaires souples et uun revenu garanti.

Pour les personnes libres,les nouveaux arrivants ou les sans-emplois G.E.M peut favoriser votre accès au marché du travail !

G.E.M vous propose des contrats stables
et rémunérateurs!

Dans le secteur résidentiel idéal pour
un couple, ou un homme seul dans le secteur commercial
Vous débuter des maintenant

Des techniques et méthodes dee travail éprouvées.

Une aide à la constitution ou à l’enregistrement de leur entreprise.

Des territoires d’exercice protégés.
Entrewprise clés en main.
Un garantie qui protège votre investissement

Exigences de l’entrée de notre réseau:
Les demandes sont examinées attentivement et une enquête relative à la
candidature est menée.
Les candidats doivent passer une entrevue de sélection.
Avant tout début d’activité, les candidats doivent assister
à des sessions de formation.

Au G.E.M. nous nous assurons que nos franchisés puissent offgrir à leurs clients un service
professionnel d’une qualité supérieure à celle de la concurrence.

Franchise disponible au résidentiel et commercial

N’hésitez pas à nous contacter
469 Jean-Talon Ouest Suite # 222
Montreal QC
gemmenage.net
gemmenage.com

nettoyage commercial, (URL) - 25-08-’17 10:55
Wilma

service de femme de ménage
Profedsionnelle de l’entretien, notre dynamique entreprise saura réaliser pour vous l’ensemble des
travaux ménagers.
G.E.M. s’engage sur une prestation de qualité !
femme de menage montreal
Notre équipe de spécialistes chevronnés accomplira un travail à la
fois soigné, rapide et économique.
De plus, nous utilisons exclusivement des produits écologiques et hautemeent
performants, issus des toutes dernières technologies.

La vie moderne véhicule aussi de lourdes menaces. D’apparence inoffensive, meubles,
appareils ménagers, matériaux de construction, jouets ou objets familiers peuvent dégager
des phtalates ou auttres redoutables composés chimiques.

entretien ménager résidentiel.G.E.M votre unique intervenant qqui
pourra assurer tout au long de l’année la continuité d’un service de haute
qualité et à la cazrte !
Entretien ménager résidentiel, Entretien ménager commercial, Grand ménage résidentiel et commercial, Lavage dde Vitres, Lavage de tapis, Décapage et
Cirage de planchers eet Plus.

Franchise dee Nettoyage Résidentiel et Commercial, service
de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal
Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du
nettoyage commercial et de la maintenance. En rejoignant notre réseau d’entreprises,
vous bénéficierez d’un avantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires
éprouvé vous assuran de travaller avec un leader du domaine disposant de
l’expérience et la stabilité.
Vous disiez augmentez vos revenus afin d’améliorer votre quotidien ?

Faites Appel a G.E.M Ménage! service de
femme dee ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal,
service de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service
d’entretien ménager montréal
Frnchises de Nettoyage Résidentiel et Commercial disponible Partout A Montréal ,Rive Nordd eet
Rivee Sud.

Financement Sans Intérêt par G.E.M .
Un dépôt est obligatoire

Un Investissement de 24 000$ Vous Rapporte (4800$ et plus de Revenus par Mois)!

Matériel et formation fourni

Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des
professionnels du nettoyage commercial et de la maintenance.
En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi quue d’une aide apportée par un modèle
d’affaires éprouvé vous assurant dde travailler avec
un leader du domaine disposant de l’expérience et la stabilité.

G.E.M Ménage vouhs offre l’opportunité de travailler pendannt
laa journée de lundi a vendredi .

G.E.M Vous propose des contrats d’entretien ménager avec des horaires souples et un revenu garanti.

Pour les personnes libres,les nouveaux arrivants ou les sans-emplois G.E.M
peut favoriser votre accès au marché duu travail !

G.E.M vous propose des contrats stables et rémunérateurs!

Dans le secteur résidentiel idéal pour un couple, ou un homme seul dans le scteur commercial
Vous débuter des maintenant

Des techniques et méthodes de ravail éprouvées.

Une aide à la consritution ou à l’enregistrement dde leur
entreprise.
Des territoires d’exercice protégés.
Entreprise clés een main.
Un garantie quii protège votre investissement

Exigences de l’entrée de notre réseau :
Les demandes sont examinées attentivement et une
enquête relative à la candidature est menée.
Les candidats doivent passer une entrevue de sélection.
Avant tout début d’activité, les candidats doivent assister à des sessions de formation.

Au G.E.M. nous nous assurons que nos franchisés puissent offrir à leurss clients un service prokfessionnel d’une qualité supérieure à celle de la concurrence.

Franchise disponible au résidentiel et commercial

N’hésitez pas à nous contacter
469 Jean-Talon Ouest Suite # 222
Montreal QC
gemmenage.net
gemmenage.com

Wilma, (URL) - 25-08-’17 18:58
service entretien ménager

service de femme de ménage
Professionnelle de l’entretien, notre dynamique
entreprise saura réaliser pour vous l’ensemble des travaux ménagers.

G.E.M. s’engage sur une prestation de qualité !

Notre équipe dde spécialistes chevronnés accomplira un travail à lla fois soigné, rapide et économique.

De plus, nous utilisons exclusivement des produits écologiques ett hautement performants, issus des toutes dernières
technologies.
La viie moderne véhicule aussi de lourdes menaces.

D’apparence inoffensive, meubles, appareils ménagers, matériaux dee construction, jouets
ou ojets familiers peuvent dégager des phtalates ou autres redoutables composés chimiques.

entretien ménager résidentiel.G.E.M votre unique intervenant
qui pourra assurer tout au long de l’année la continuité d’un service de haute
qualité et à la cate !
Entretien ménager résidentiel, Entretien ménager commercial, Grand ménage résidentiel
et commercial, Lavage de Vitres, Lavage de tapis, Décapage ett Cirage de
planchers et Plus.

Franchise de Nettoyae Résidentiel et Commercial, service de femme de ménage ,
entretien ménager commercial,entretien ménager commercial, ménage résidentiel, serrvice d’entretien ménager montréal
Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à
devenir des professionnels du nettoyage commercial et
de la maintenance. En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi que d’une
aide apportée par un modèle d’affaires éprouvé vous assurant de travailler avec un leader
du domaine disposant de l’expérience ett la stabilité.

Vous disiez augmentez vos revenus afin d’améliorer votre quotidien ?

Faites Appel a G.E.M Ménage! service de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal, service de femme de ménage
,entretien ménager commercial,entretien ménager commercial,
ménage résidentiel, sservice d’entretien ménager montréal
Franchises de Nettoyage Résidentiel et Commercial disponible Partout A Montréal
,Rive Nord et Rivve Sud.

Financement Sans Intérêt par G.E.M .
Un dépôt est obligatoire

Un Investissement de 24 000$ Vous Rapporte (4800$ et plus de Revenus par
Mois)!

Matériel et formation fourni

Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir
des professionnels du nettoyage commercial et de laa maintenance.
En rejoignant notre réseau d’entreprises, vous
bénéficierez d’un avantage concurrentiel ainsi que d’une
aiude apportée par un modèle d’affaires éprouvé
ous assurant de travailler avec un leader du domaine disposant de l’expérience et la stabilité.

G.E.M Ménage vous offre l’opportunité de travailler pendant la
journée de luindi a vendredi .

G.E.M Vous propose des contrats d’entretien ménager avec des horaires souples et un revenu garanti.

Pour les personnes libres,les nouveaux arrivants ou les sans-emplois G.E.M peut favoriser votre accès au marché
du travail !

G.E.M vous propose dess contrats stables et rémunérateurs!

Dans le secteur résidentiel idéalpour un couple, ou
un homme seul dazns le secteur commercial
Vous débuter des maintenant

Des techniquues eet méthodes de travail éprouvées.

Une aide à la constitution ou à l’enregistrement
de lsur entreprise.
Des territoires d’exercice protégés.

Entreprise clés en main.
Un garantie qui protège vptre investissement

Exigences de l’entrée dee notre réseau :
Les demandes sont examinées attentivement et
une enquête relative à la candidature est menée.

Les candidats doivent passer une enfrevue de sélection.
Avant tout début d’activité, les candidats doivent assister
à des sessions de formation.

Au G.E.M. nouss nous assurons quue nos franchisés puisssent offrir à leurs
clients un service professionnel d’une qualité
supérieure à celle dee la concurrence.
Franchise disponkble au résidentiel et commercial

N’hésitez pas à nous contacter
469 Jean-Talon Ouest Suite # 222
Montreal QC
gemmenage.net
gemmenage.com

service entretien ménager, (URL) - 26-08-’17 20:00
(optional field)
(optional field)
为阻止垃圾广告, 请在提交评论前, 回答一个简单问题(Please answer an simple question)
Remember personal info?
Notify
Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.