Java with Pagination - java

I am working on writing a java client code which calls a web service. When I make a call to one of my client's web service, its accepting the input parameter like below:
KalturaFilterPager pager = new KalturaFilterPager();
pager.pageIndex = 1;
pager.pageSize = 50;
So If i have 430 records, I need to change the input parameter everytime like pageIndex =2 pageSize =50 like this to get all the records.
Now my requirement is I want to retrieve all my records in one page. How can I do this without specifying pageSize =431 as this record number might change in the future.
My code is:
private static String getMediaMetadata() throws KalturaApiException,
IOException, ParserConfigurationException, SAXException {
getKalturaClient();
String country = null;
KalturaMediaService mediaService = client.getMediaService();
System.out.println("Got the mediaservice" + mediaService);
KalturaMediaEntryFilter filter = new KalturaMediaEntryFilter();
KalturaFilterPager pager = new KalturaFilterPager();
pager.pageIndex = 1;
pager.pageSize = 50;
KalturaMediaListResponse mediaResponse = mediaService.list(filter,
pager);
if (mediaResponse.totalCount > 0) {
System.out.println("mediaResponse.totalCount"
+ mediaResponse.totalCount);
// pager.pageSize = mediaResponse.objects;
List<KalturaMediaEntry> mediaEntriesList = mediaResponse.objects;
if (mediaEntriesList != null && mediaEntriesList.size() > 0) {
for (int i = 0; i < mediaEntriesList.size(); i++) {
System.out.println("mediaEntriesList.size()-------->"
+ mediaEntriesList.size());
KalturaMediaEntry media = mediaEntriesList.get(i);
if (media != null) {
System.out.println("Media ID -------->" + media.id);
KalturaMetadataListResponse metadataResp = getMetadata(media.id);
if (metadataResp != null && metadataResp.totalCount > 0) {
System.out.println("Got the metadataResp"
+ metadataResp.totalCount);
List<KalturaMetadata> metadataObjs = metadataResp.objects;
if (metadataObjs != null && metadataObjs.size() > 0) {
System.out.println("got the metadaobjs");
for (int j = 0; j < metadataObjs.size(); j++) {
KalturaMetadata metadata = metadataObjs
.get(j);
if (metadata != null) {
System.out
.println("metadata not null --------->"
+ metadata);
String xml = metadata.xml;
if (xml != null) {
System.out
.println("xml not null --------->"
+ xml);
country = parseXml(xml);
if (country != null) {
System.out
.println("Country Value --------->"
+ country);
}
}
}
}
}
}
}
}
}
}
return country;
}

is there any way to get total number of records before actually getting records? Is there such an API ? If so, call that first use that value as the page size instead.

Related

Java, Spring Boot: Question about numberformatexception

this NumberFormatException is driving me insane. I cannot seem to find any reason for the exception.
For context i am running a maven built spring boot application as a jar when the error occurs. It is running without errors inside the ide.
The error message:
java.lang.NumberFormatException: For input string: "9150287"
The piece of code producing the error message:
String substring = st.substring(indexLastAddedString + 1, i).trim();
System.out.println("Substring to be parsed: " + substring);
number = Integer.parseInt(substring);
So far i tried every method of parsing the string to integer.
I also logged the string and tried different strings.
//Edit
Here is the minimal reproducible example:
File file = new File("somefile.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String st;#
int numberOfSemicolon = 0;
int indexLastAddedString = 0;
String description = "";
int adressNumber = -1;
int number = 0;
while ((st = br.readLine()) != null) {
for(int i = 0; i < st.length(); i++) {
if(st.charAt(i) == ';') {
numberOfSemicolon++;
}
//add the description of project
if(st.charAt(i) == ';' && numberOfSemicolon == 1) {
description = st.substring(indexLastAddedString,i).replace("\""," ");
indexLastAddedString = i;
}
//add the adresNumber of project
if(st.charAt(i) == ';' && numberOfSemicolon == 2) {
String identifier = st.substring(indexLastAddedString+1, i);
adressNumber = customers.get(identifier) == null ? -1 : customers.get(identifier).getId();
indexLastAddedString = i;
}
//add the belegnumber of project
if(st.charAt(i) == ';' && numberOfSemicolon == 3) {
String substring = st.substring(indexLastAddedString + 1, i).trim();
System.out.println("Substring to be parsed: " + substring);
try {
} catch (NumberFormatException er) {
er.printStackTrace();
}
number = Integer.parseInt(substring);
projects.add(new Project(number,description, adressNumber));
indexLastAddedString = i+1;
numberOfSemicolon = 0;
}
}
}
The text file contains data in the following format (as an example):
projectdescription;adressNumber;projectNumber;

Retrieving sidHistory from LDAP with Java

I can retrieve objectSID and many other attributes without error, but not sidHistory (I need sidHistory to see which account in domain A corresponds to an account in domain B).
Here's the code that works for most attributes, including objectSID:
void dumpCSV(Attributes attrs, String[] displayList, Logger lg) {
// Assume we're only dealing with single valued attributes (for now)
StringBuilder sb = new StringBuilder();
for (String attName : displayList) {
String name = attName.trim().toLowerCase();
Attribute att = attrs.get(name);
if (sb.length() > 0)
sb.append(",");
if (att != null) {
String v = "?";
try {
if ((name.equals("objectsid")) || (name.equals("sidhistory")))
v = binString(att);
else {
v = (String) att.get();
if (name.equals("pwdlastset") || name.equals("lastlogontimestamp") || name.equals("lastlogon") || name.equals("accountexpires"))
v = TickConverter.tickDate(v);
}
sb.append(Logger.tidyString(v));
} catch (NamingException e) {
System.err.println("NamingException, " + e);
return;
}
}
}
lg.logln(sb.toString());
}
}
static String binString(Attribute att) {
try {
byte bin[] = (byte[]) att.get();
return decodeSID(bin);
} catch (NamingException e) {
System.err.println("NamingException, " + e);
return "?";
}
}
// taken from http://www.adamretter.org.uk/blog/entries/LDAPTest.java, in turn borrowed from Oracle docs
public static String decodeSID(byte[] sid) {
final StringBuilder strSid = new StringBuilder("S-");
// get version
final int revision = sid[0];
strSid.append(Integer.toString(revision));
//next byte is the count of sub-authorities
final int countSubAuths = sid[1] & 0xFF;
//get the authority
long authority = 0;
//String rid = "";
for(int i = 2; i <= 7; i++) {
authority |= ((long)sid[i]) << (8 * (5 - (i - 2)));
}
strSid.append("-");
strSid.append(Long.toHexString(authority));
//iterate all the sub-auths
int offset = 8;
int size = 4; //4 bytes for each sub auth
for(int j = 0; j < countSubAuths; j++) {
long subAuthority = 0;
for(int k = 0; k < size; k++) {
subAuthority |= (long)(sid[offset + k] & 0xFF) << (8 * k);
}
strSid.append("-");
strSid.append(subAuthority);
offset += size;
}
return strSid.toString();
}
If I try to retrieve sidHistory using this, tyhe value I get is "?".
Even if I use a namingEnumeration, as I think I probably should, I get "Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException: Vector Enumeration", probably because I am trying to save it to the wrong typoe (and I've tried a few different types).
snippet is :
String v;
NamingEnumeration nenum = att.getAll();
while (nenum.hasMore()) {
v = "";
if (name.equals("objectsid")) {
v = binString(att);
nenum.next();
} else if (name.equals("sidhistory")) {
nenum.next();
String[] vv = ((String[]) nenum.next());
v = vv[0];
} else
v = (String) nenum.next();
if (name.equals("pwdlastset") || name.equals("lastlogontimestamp") || name.equals("lastlogon") || name.equals("accountexpires"))
v = TickConverter.tickDate(v);
lg.logln(name + "=" + Logger.tidyString(v));
}
We used some code similar to:
We note we saw it at http://tomcatspnegoad.sourceforge.net/xref/net/sf/michaelo/tomcat/realm/ActiveDirectoryRealm.html#L566
...
Attribute sidHistory = roleAttributes.get("sIDHistory;binary");
List<String> sidHistoryStrings = new LinkedList<String>();
if (sidHistory != null)
{
NamingEnumeration<?> sidHistoryEnum = sidHistory.getAll();
while (sidHistoryEnum.hasMore())
{
byte[] sidHistoryBytes = (byte[]) sidHistoryEnum.next();
sidHistoryStrings.add(new Sid(sidHistoryBytes).toString());
}
...
}
sidHistory is multi-valued and binary (octetString) is what cause most people headaches.
Hope this helps.

Export filtered data to CSV from jqgrid

I am using free jqgrid 4.14 and I need to export the data of the grid into CSV/Excel. I have already made a function which exports all the data to CSV.
I am capturing the data coming from the server and using that data to form the CSV. But here the problem is how will I get only the filtered data from the grid. Is there any default property or function for that?
This is my function -
function convertor (gridData, scopes, ShowLabel, fileTitle,grid_header_column_value,id) {
scopes.grid_header_columns = scopes.grid_header_column_value[id];
var bg = "<button class='btnfilter' />";
for (var i = 0; i < scopes.grid_hidden_columns[id].length; i++) {
if (includes(scopes.grid_header_columns,scopes.grid_hidden_columns[id][i]) == true) {
var indexhed = scopes.grid_header_columns.indexOf(scopes.grid_hidden_columns[id][i]);
scopes.grid_header_columns.splice(indexhed, 1);
}
}
var arrData = typeof gridData != 'object' ? JSON.parse(gridData) : gridData;
var CSV = '';
if (ShowLabel) {
var row = "";
var count = 0;
if (fileTitle != "" )
{
var htmltext = fileTitle.split(',');
for (var jj = 0; jj < htmltext.length; jj++)
{
var datacont = document.getElementById(htmltext[jj]);
if (datacont == undefined)
datacont = '';
else
datacont = datacont.textContent + '\r\n';
CSV += datacont;
}
}
for (var index in arrData[0]) {
var a = scopes.gridextra.indexOf(index);
if (a == -1 && scopes.grid_header_columns[count] != undefined) {
row += scopes.grid_header_columns[count].replace(bg, "") + ',';
count++;
}
}
row = row.slice(0, -1);
CSV += row + '\r\n';
}
for (var i = 0; i < arrData.length; i++) {
var row = "";
for (var index in arrData[i]) {
var a = scopes.gridextra.indexOf(index);
if (a == -1) {
if (isNaN(arrData[i][index]) == false) {
if(arrData[i][index]<0) {
if(arrData[i][index] == -2)
arrValue = '="'+"*"+'"';
else
arrValue = '="'+"N/A"+'"';
}
else
var arrValue = arrData[i][index] == null ? "" : '="' + arrData[i][index] + '"';
}
else
var arrValue = arrData[i][index] == null ? "" : '="' + arrData[i][index] + '"';
row += arrValue + ',';
}
}
row.slice(0, row.length - 1);
CSV += row + '\r\n';
}
if (CSV == '') {
growl.error("Invalid data");
return;
}
csvData = CSV;
}
If I correctly understand your problem, then you should to use lastSelectedData parameter instead of data parameter. The data parameter contains original data. The lastSelectedData parameter contains the filtered and sorted data (all pages). See the demos, which I created for the answer.

HashMap key that is made up of multiple tokens and has non-null value mapping returns null

I am creating a currency exchange application from csv data and have hit a road block. I am storing the main currency exchange rate table in a LinkedHashMap of the following type:
LinkedHashMap[String,LinkedHashMap[String,Double]]
It will store the data as [Country, [Year,Rate]].
When I print to the console to confirm that the Map is being populated properly, I receive confirmation of a full KeySet and proper value mappings. Additionally, the application runs smoothly for any country names consisting of only one token. However, countries with more than one token in their names return null even though the map is populated with that key and its correct corresponding value.
For example, printing getExchangeRates() will return all K-V pairs including the following:
Australia={1960=0.8929, 1961=0.8929, 1962=0.8929, 1963=0.8929, 1964=0.8929, 1965=0.8929...},
Czech Republic={1990=21.145, 1991=27.92, 1992=28.37, 1993=29.153, 1994=28.785, 1995=26.541...},
New Zealand={1960=0.7143, 1961=0.7155, 1962=0.7192, 1963=0.7192, 1964=0.7192, 1965=0.7192...}
Printing getExchangeRates().get("Australia") will return the LinkedHashMap of years and rates; however, printing getExchangeRates().get("Czech Republic") or getExchangeRates().get("New Zealand") will return null.
Does anyone know why this would be happening? I am befuddled.
Code and csv snippet included for reference, but as I said, the HashMap appears to be populating correctly.
,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008
Australia,0.8929,0.8929,0.8929,0.8929,0.8929,0.8929,0.8929,0.8929,0.8929,0.8929,0.8929,0.8827,0.8387,0.7041,0.6967,0.7639,0.8183,0.9018,0.8737,0.8946,0.8782,0.8702,0.9859,1.11,1.1395,1.4319,1.496,1.4282,1.2799,1.2646,1.2811,1.2838,1.3617,1.4706,1.3678,1.349,1.2779,1.3474,1.5918,1.55,1.7248,1.9334,1.8406,1.5419,1.3598,1.3095,1.328,1.1951,1.1922
Austria,1.88949,1.88949,1.88949,1.88949,1.88949,1.88949,1.88949,1.88949,1.88949,1.88949,1.88949,1.81394,1.67985,1.42293,1.35844,1.26573,1.30373,1.20106,1.05533,0.97145,0.94024,1.15745,1.23975,1.30544,1.45412,1.50356,1.1095,0.91877,0.89734,0.96151,0.82628,0.84852,0.79862,0.84534,0.83005,0.73265,0.76936,0.88691,0.89962,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Belgium,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.21145,1.09109,0.9662,0.96558,0.91173,0.957,0.88852,0.78067,0.72679,0.72488,0.92041,1.13264,1.26752,1.43243,1.47194,1.10739,0.92549,0.91146,0.9768,0.82841,0.84651,0.79697,0.85762,0.82936,0.73079,0.76752,0.88681,0.89982,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Canada,0.9698,1.0131,1.0701,1.0811,1.0811,1.0811,1.0811,1.0811,1.0811,1.0811,1.0477,1.0098,0.9899,1.0001,0.978,1.0172,0.986,1.0635,1.1407,1.1714,1.1692,1.1989,1.2337,1.2324,1.2951,1.3655,1.3895,1.326,1.2307,1.184,1.1668,1.1457,1.2087,1.2901,1.3656,1.3724,1.3635,1.3846,1.4835,1.4857,1.4851,1.5488,1.5693,1.4011,1.301,1.2118,1.1344,1.0741,1.067
Czech Republic,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,21.145,27.92,28.37,29.153,28.785,26.541,27.145,31.698,32.281,34.569,38.598,38.035,32.739,28.209,25.7,23.957,22.596,20.294,17.072
Denmark,6.9071,6.9071,6.9071,6.9071,6.9071,6.9071,6.9071,6.9565,7.5,7.5,7.5,7.4169,6.9493,6.0495,6.0949,5.7462,6.045,6.0032,5.5146,5.261,5.6359,7.1234,8.3324,9.145,10.3566,10.5964,8.091,6.8403,6.7315,7.3102,6.1886,6.3965,6.0361,6.4839,6.3606,5.6024,5.7987,6.6045,6.7008,6.9762,8.0831,8.3228,7.8947,6.5877,5.9911,5.9969,5.9468,5.4437,5.0981
Finland,0.5382,0.5382,0.5382,0.5382,0.5382,0.5382,0.5382,0.58025,0.70638,0.70638,0.70638,0.70375,0.69736,0.64267,0.6347,0.61871,0.64995,0.6777,0.69249,0.65515,0.62735,0.72577,0.81074,0.93682,1.01081,1.04241,0.85263,0.73928,0.7035,0.72173,0.64307,0.68015,0.75339,0.96074,0.87853,0.73442,0.77258,0.87314,0.89881,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
France,0.75266,0.75266,0.75266,0.75266,0.75266,0.75266,0.75266,0.75266,0.75266,0.79185,0.84673,0.84496,0.769,0.67959,0.7339,0.65343,0.72855,0.74907,0.68802,0.64858,0.64419,0.8285,1.00191,1.16186,1.33227,1.36978,1.05588,0.91633,0.90812,0.97264,0.83013,0.86014,0.80704,0.86335,0.8464,0.76095,0.77986,0.8898,0.89938,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Germany,2.14743,2.06221,2.04517,2.04517,2.04517,2.04517,2.04517,2.04517,2.04517,2.01619,1.87133,1.78481,1.63033,1.36648,1.3231,1.25793,1.28743,1.18731,1.027,0.93714,0.92936,1.15552,1.2407,1.30546,1.45511,1.50523,1.11026,0.91899,0.89795,0.96125,0.82611,0.84851,0.79846,0.84533,0.82972,0.73275,0.76938,0.88661,0.8997,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Greece,0.08804,0.08804,0.08804,0.08804,0.08804,0.08804,0.08804,0.08804,0.08804,0.08804,0.08804,0.08804,0.08804,0.08694,0.08804,0.09406,0.10717,0.10811,0.10784,0.1087,0.12507,0.16261,0.19605,0.25844,0.33079,0.40534,0.4108,0.39745,0.41632,0.47665,0.46519,0.5349,0.55942,0.67278,0.71197,0.67986,0.70642,0.80134,0.86729,0.89698,1.07234,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Hungary,..,..,..,..,..,..,..,..,60,60,60,59.82,55.26,48.97,46.75,43.97,41.58,40.96,37.91,35.58,32.53,34.31,36.63,42.67,48.04,50.12,45.83,46.97,50.41,59.07,63.21,74.74,78.99,91.93,105.16,125.68,152.65,186.79,214.4,237.15,282.18,286.49,257.89,224.31,202.75,199.58,210.39,183.63,172.11
Iceland,0.344,0.401,0.43,0.43,0.43,0.43,0.43,0.442,0.622,0.88,0.88,0.88,0.883,0.901,1,1.537,1.822,1.989,2.711,3.526,4.798,7.224,12.352,24.843,31.694,41.508,41.104,38.677,43.014,57.042,58.284,58.996,57.546,67.603,69.944,64.692,66.5,70.904,70.958,72.335,78.616,97.425,91.662,76.709,70.192,62.982,70.18,64.055,87.948
Ireland,0.45347,0.45347,0.45347,0.45347,0.45347,0.45347,0.45347,0.45977,0.52906,0.52906,0.52906,0.52176,0.50839,0.51827,0.54313,0.57397,0.70662,0.7279,0.66217,0.62038,0.61792,0.78889,0.89461,1.02173,1.1714,1.20068,0.94358,0.85443,0.83354,0.89585,0.76767,0.78888,0.74625,0.85993,0.84898,0.79198,0.79362,0.83757,0.8917,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Italy,0.32226,0.32279,0.32279,0.32279,0.32279,0.32279,0.32279,0.32279,0.32279,0.32279,0.32279,0.32017,0.30121,0.30109,0.33587,0.33717,0.42987,0.45572,0.4383,0.4291,0.44232,0.58709,0.69851,0.78442,0.90739,0.98614,0.76994,0.66936,0.67223,0.70863,0.61877,0.64072,0.63649,0.81273,0.83276,0.84127,0.79687,0.87958,0.89668,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Japan,360,360,360,360,360,360,360,360,360,360,360,349.33,303.17,271.7,292.08,296.79,296.55,268.51,210.44,219.14,226.74,220.54,249.08,237.51,237.52,238.54,168.52,144.64,128.15,137.96,144.79,134.71,126.65,111.2,102.21,94.06,108.78,120.99,130.91,113.91,107.77,121.53,125.39,115.93,108.19,110.22,116.3,117.75,103.36
Korea,..,..,..,..,..,..,271.3,270.5,276.7,288.2,310.6,347.2,392.9,398.3,404.5,484,484,484,484,484,607.4,681,731.1,775.8,806,870,881.5,822.6,731.5,671.5,707.8,733.4,780.7,802.7,803.4,771.3,804.5,951.3,1401.4,1188.8,1131,1291,1251.1,1191.6,1145.3,1024.1,954.8,929.3,1102.1
Luxembourg,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.23947,1.21145,1.09109,0.9662,0.96558,0.91173,0.957,0.88852,0.78067,0.72679,0.72488,0.92041,1.13264,1.26752,1.43243,1.47194,1.10739,0.92549,0.91146,0.9768,0.82841,0.84651,0.79697,0.85762,0.82936,0.73079,0.76752,0.88681,0.89982,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Mexico,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.015,0.023,0.023,0.023,0.023,0.025,0.056,0.12,0.168,0.257,0.612,1.378,2.273,2.462,2.813,3.018,3.095,3.116,3.375,6.419,7.599,7.918,9.136,9.56,9.456,9.342,9.656,10.789,11.286,10.898,10.899,10.928,11.13
Netherlands,1.72436,1.6563,1.64268,1.64268,1.64268,1.64268,1.64268,1.64268,1.64268,1.64268,1.64268,1.58933,1.45641,1.26857,1.21993,1.14761,1.19977,1.11369,0.98179,0.91028,0.90217,1.13227,1.21169,1.29515,1.45604,1.50719,1.11177,0.91922,0.89693,0.96235,0.82631,0.84842,0.79796,0.84281,0.82588,0.72863,0.76503,0.88545,0.90018,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
New Zealand,0.7143,0.7155,0.7192,0.7192,0.7192,0.7192,0.7192,0.7337,0.8929,0.8929,0.8929,0.8806,0.8368,0.7368,0.7154,0.8323,1.0049,1.0303,0.9644,0.9785,1.0267,1.1528,1.3326,1.4968,1.764,2.0234,1.9132,1.6946,1.5264,1.6722,1.6762,1.7335,1.8618,1.8505,1.6865,1.5239,1.4549,1.5124,1.8683,1.8896,2.2012,2.3788,2.1622,1.7221,1.5087,1.4203,1.5421,1.3607,1.4227
Norway,7.1429,7.1429,7.1429,7.1429,7.1429,7.1429,7.1429,7.1429,7.1429,7.1429,7.1429,7.0418,6.5883,5.7658,5.5397,5.2269,5.4565,5.3235,5.2423,5.0641,4.9392,5.7395,6.454,7.2964,8.1615,8.5972,7.3947,6.7375,6.517,6.9045,6.2597,6.4829,6.2145,7.0941,7.0576,6.3352,6.4498,7.0734,7.5451,7.7992,8.8018,8.9917,7.9838,7.0802,6.7408,6.4425,6.4133,5.8617,5.64
Poland,..,..,..,..,..,..,0.0004,0.0004,0.0004,0.0004,0.0004,0.0004,0.0004,0.0003,0.0003,0.0003,0.0003,0.0003,..,0.004,0.0044,0.0051,0.0085,0.0092,0.0113,0.0147,0.0175,0.0265,0.0431,0.1439,0.95,1.0576,1.3626,1.8115,2.2723,2.425,2.6961,3.2793,3.4754,3.9671,4.3461,4.0939,4.08,3.8891,3.6576,3.2355,3.1032,2.768,2.4092
Portugal,0.1434,0.1434,0.1434,0.1434,0.1434,0.1434,0.1434,0.1434,0.1434,0.1434,0.1434,0.14122,0.13494,0.12228,0.12673,0.12746,0.15078,0.19092,0.21916,0.24403,0.24971,0.30699,0.39641,0.55257,0.73019,0.84993,0.74614,0.70272,0.71804,0.7854,0.71106,0.72067,0.67337,0.80207,0.82797,0.75371,0.76937,0.87445,0.89835,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Slovak Republic,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,1.0214,1.0637,0.9863,1.0175,1.1159,1.1695,1.373,1.5281,1.6051,1.5046,1.2206,1.0707,1.0296,0.9858,0.8197,0.7091
Spain,0.36061,0.36061,0.36061,0.36061,0.36061,0.36061,0.36061,0.37063,0.42071,0.42071,0.42071,0.41752,0.38628,0.35015,0.3467,0.34502,0.4021,0.45654,0.46078,0.40343,0.43094,0.55487,0.66027,0.86203,0.96619,1.02199,0.84171,0.74212,0.7001,0.71147,0.61264,0.62452,0.61531,0.76485,0.8051,0.7494,0.76125,0.87997,0.89788,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Sweden,5.1732,5.1732,5.1732,5.1732,5.1732,5.1732,5.1732,5.1732,5.1732,5.1732,5.1732,5.1168,4.7624,4.3673,4.4394,4.1522,4.3559,4.4816,4.5185,4.2871,4.2296,5.0634,6.2826,7.6671,8.2718,8.6039,7.1236,6.3404,6.1272,6.4469,5.9188,6.0475,5.8238,7.7834,7.716,7.1333,6.706,7.6349,7.9499,8.2624,9.1622,10.3291,9.7371,8.0863,7.3489,7.4731,7.3783,6.7588,6.5911
Switzerland,4.373,4.373,4.373,4.373,4.373,4.373,4.373,4.373,4.373,4.373,4.373,4.1342,3.8193,3.1648,2.9793,2.5813,2.4996,2.4035,1.788,1.6627,1.6757,1.9642,2.0303,2.0991,2.3497,2.4571,1.7989,1.4912,1.4633,1.6359,1.3892,1.434,1.4062,1.4776,1.3677,1.1825,1.236,1.4513,1.4498,1.5022,1.6888,1.6876,1.5586,1.3467,1.2435,1.2452,1.2538,1.2004,1.0831
Turkey,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,0.0001,0.0001,0.0002,0.0002,0.0004,0.0005,0.0007,0.0009,0.0014,0.0021,0.0026,0.0042,0.0069,0.011,0.0296,0.0458,0.0814,0.1519,0.2607,0.4188,0.6252,1.2256,1.5072,1.5009,1.4255,1.3436,1.4285,1.3029,1.3015
United Kingdom,0.35714,0.35714,0.35714,0.35714,0.35714,0.35714,0.35714,0.3621,0.41667,0.41667,0.41667,0.41092,0.40039,0.40817,0.42776,0.45204,0.55651,0.57327,0.52151,0.47218,0.4303,0.49764,0.57245,0.65973,0.75181,0.77925,0.6822,0.61193,0.56217,0.61117,0.56318,0.56702,0.56977,0.66676,0.65343,0.63367,0.64096,0.61084,0.60382,0.61806,0.66093,0.69466,0.66722,0.61247,0.54618,0.55,0.54349,0.49977,0.54397
United States,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Euro area,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,0.76452,0.78756,0.8818,0.89199,0.93863,1.0854,1.11751,1.06255,0.88603,0.80537,0.80412,0.79714,0.73064,0.68268
Brazil,0.0001,0.0001,0.0001,0.0002,0.0005,0.0007,0.0009,0.001,0.0013,0.0016,0.0018,0.002,0.0023,0.0024,0.0026,0.0031,0.0041,0.0055,0.007,0.0104,0.0203,0.0359,0.0693,0.2227,0.7131,2.3925,5.2694,15.137,79.6677,-,-,0.0001,0.0016,0.0322,0.6393,0.9177,1.0051,1.078,1.1605,1.8139,1.8294,2.3496,2.9204,3.0775,2.9251,2.4344,2.1753,1.9471,1.8338
Chile,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,396.77,412.27,419.3,460.29,508.78,539.59,634.94,688.94,691.4,609.53,559.77,530.28,522.46,522.46
China,2.462,2.462,2.462,2.462,2.462,2.462,2.462,2.462,2.462,2.462,2.462,2.462,2.245,1.989,1.961,1.86,1.941,1.858,1.684,1.555,1.498,1.705,1.893,1.976,2.32,2.937,3.453,3.722,3.722,3.765,4.783,5.323,5.515,5.762,8.619,8.351,8.314,8.29,8.279,8.278,8.279,8.277,8.277,8.277,8.277,8.194,7.973,7.608,6.949
Estonia,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,13.223,12.991,11.465,12.038,13.882,14.075,14.678,16.969,17.478,16.612,13.856,12.596,12.584,12.466,11.434,10.694
India,4.77,4.78,4.77,4.78,4.79,4.79,6.3,7.56,7.58,7.59,7.57,7.52,7.59,7.74,8.1,8.38,8.96,8.74,8.19,8.13,7.86,8.66,9.46,10.1,11.36,12.37,12.61,12.96,13.92,16.23,17.5,22.74,25.92,30.49,31.37,32.43,35.43,36.31,41.26,43.06,44.94,47.19,48.61,46.58,45.32,44.1,45.31,41.35,43.51
Indonesia,..,..,..,..,..,..,..,150,296,326,363,392,415,415,415,415,415,415,442,623,627,632,661,909,1026,1111,1283,1644,1686,1770,1843,1950,2030,2087,2161,2249,2342,2909,10014,7855,8422,10261,9311,8577,8939,9705,9159,9141,9699
Israel 1,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,3.0113,3.1917,3.4494,3.8001,4.1397,4.0773,4.2057,4.7378,4.5541,4.482,4.4877,4.4558,4.1081,3.588
Russian Federation,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,0.992,2.191,4.559,5.121,5.785,9.705,24.62,28.129,29.169,31.349,30.692,28.814,28.284,27.191,25.581,24.853
Slovenia,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,0.11505,0.3392,0.47255,0.53751,0.49457,0.56486,0.66637,0.69326,0.75851,0.92913,1.01297,1.00254,0.86427,0.80279,0.80414,0.79715,0.73064,0.68268
South Africa,0.713,0.715,0.713,0.715,0.717,0.716,0.717,0.717,0.717,0.718,0.716,0.712,0.773,0.694,0.679,0.74,0.87,0.87,0.87,0.842,0.779,0.878,1.086,1.114,1.475,2.229,2.285,2.036,2.273,2.623,2.587,2.761,2.852,3.268,3.551,3.627,4.299,4.608,5.528,6.109,6.94,8.609,10.541,7.565,6.46,6.359,6.772,7.045,8.261
public static ArrayList<String> getYears() throws IOException {
File file = new File("exchangerates.csv");
BufferedReader br = new BufferedReader(new FileReader(file));
ArrayList<String> years = new ArrayList<String>();
String line = br.readLine();
String year = "";
for(int i = 1; i < line.length(); i++) {
if(line.charAt(i) != ',' && i != line.length()-1) {
year = year + line.charAt(i);
}
else if(i == line.length()-1) {
year = year + line.charAt(i);
years.add(year);
}
else {
years.add(year);
year = "";
}
}
br.close();
return years;
}
public static LinkedHashMap<String,LinkedHashMap<String,Double>> getExchangeRates() throws IOException {
File file = new File("exchangerates.csv");
BufferedReader br = new BufferedReader(new FileReader(file));
//burn first line
br.readLine();
LinkedHashMap<String,LinkedHashMap<String,Double>> exchangeRatesTable = new LinkedHashMap<String,LinkedHashMap<String,Double>>();
String line = null;
while((line = br.readLine()) != null) {
String country = "";
int index = 0;
while(line.charAt(index) != ',') {
country = country + line.charAt(index);
index++;
}
index++; //skip comma
LinkedHashMap<String,Double> yearlyRateMap = new LinkedHashMap<String,Double>();
for(String year : getYears()) {
String rateString = "";
for(int k = index; k < line.length(); k++) {
if(line.charAt(k) != ',' && k != line.length()-1) {
rateString = rateString + line.charAt(k);
index++;
}
else if(k == line.length()-1) {
rateString = rateString + line.charAt(k);
index++;
if(!rateString.equals("..")) {
Double exchangeRate = new Double(rateString);
yearlyRateMap.put(year, exchangeRate);
}
else {
index++;
break;
}
break;
}
else {
if(!rateString.equals("..") && !rateString.equals("-")) {
index++;
Double exchangeRate = new Double(rateString);
yearlyRateMap.put(year, exchangeRate);
}
else {
index++;
break;
}
break;
}
}
}
exchangeRatesTable.put(country, yearlyRateMap);
}
br.close();
return exchangeRatesTable;
}

3 line read from txt file

txt file read and 1~3 line is send Mesaage and 3~6 line read message send
but 1~3 read after send, next Again 1~3 line read after send...
I want 3 line read Repeat from txt file
test.txt
1|11221234|c1|c2|c3|c4
2|11221234|c1|c2|c3|c4
3|11221234|c1|c2|c3|c4
4|11221234|c1|c2|c3|c4
5|11221234|c1|c2|c3|c4
6|11221234|c1|c2|c3|c4
7|11221234|c1|c2|c3|c4
8|11221234|c1|c2|c3|c4
9|11221234|c1|c2|c3|c4
9|11221234|c1|c2|c3|c4
10|11221234|c1|c2|c3|c4
11|11221234|c1|c2|c3|c4
12|11221234|c1|c2|c3|c4
13|11221234|c1|c2|c3|c4
while ((s = in.readLine()) != null) {
cnt++;
Element record = new Element("RECORD");
String[] arr = s.split("│");
if (arr.length == tableInfoMap.size()) {
for (int i = 0; i < arr.length; i++) {
int j = i + 1;
String fieldName = (String) tableInfoMap
.get("COLUMN" + j);
Element field = new Element(fieldName);
field.addContent(new CDATA(arr[i]));
record.addContent(field);
}
} else {
throw new ArrayIndexOutOfBoundsException(" ");
}
rootElement.addContent(record);
if (cnt >= 3) {
sendMsg(srcTblName, tgtTblName, classPath,
className, doc, comm, sndAgency, rcvAgency,
cnt);
cnt = 0;
}
}
if (cnt > 0) {
boolean isSend = sendMsg(srcTblName, tgtTblName,
classPath, className, doc, comm, sndAgency,
rcvAgency, cnt);
in.close();
if (isSend == true) {
File f = new File(file);
if (f.delete() == true) {
logger.info("Send File Success: " + file);
logger.debug(f.getPath());
} else {
logger.warn("Send File Fail: " + file);
logger.debug(f.getPath());
}
}
}
Unsure what the question is but the | character in the split() requires escaping (the argument to split() is a regular expression and not a plain string):
String[] arr = s.split("\\│"); // Match | character only.

Categories

Resources