git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270856 13f79535-47bb-0310-9956-ffa450edef68master
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -129,55 +129,55 @@ public class Checksum extends MatchingTask implements Condition { | |||
/** | |||
* Sets the file for which the checksum is to be calculated. | |||
*/ | |||
public void setFile(File aFile) { | |||
this.file = aFile; | |||
public void setFile(File file) { | |||
this.file = file; | |||
} | |||
/** | |||
* Sets the MessageDigest algorithm to be used | |||
* to calculate the checksum. | |||
*/ | |||
public void setAlgorithm(String aAlgorithm) { | |||
this.algorithm = aAlgorithm; | |||
public void setAlgorithm(String algorithm) { | |||
this.algorithm = algorithm; | |||
} | |||
/** | |||
* Sets the MessageDigest algorithm provider to be used | |||
* to calculate the checksum. | |||
*/ | |||
public void setProvider(String aProvider) { | |||
this.provider = aProvider; | |||
public void setProvider(String provider) { | |||
this.provider = provider; | |||
} | |||
/** | |||
* Sets the File Extension that is be to used to | |||
* create or identify destination file | |||
*/ | |||
public void setFileext(String aFileext) { | |||
this.fileext = aFileext; | |||
public void setFileext(String fileext) { | |||
this.fileext = fileext; | |||
} | |||
/** | |||
* Sets the property to hold the generated checksum | |||
*/ | |||
public void setProperty(String aProperty) { | |||
this.property = aProperty; | |||
public void setProperty(String property) { | |||
this.property = property; | |||
} | |||
/** | |||
* Sets verify property. This project property holds | |||
* the result of a checksum verification - "true" or "false" | |||
*/ | |||
public void setVerifyproperty(String aVerifyProperty) { | |||
this.verifyProperty = aVerifyProperty; | |||
public void setVerifyproperty(String verifyProperty) { | |||
this.verifyProperty = verifyProperty; | |||
} | |||
/** | |||
* Overwrite existing file irrespective of whether it is newer than | |||
* the source file? Defaults to false. | |||
*/ | |||
public void setForceOverwrite(boolean aForceOverwrite) { | |||
this.forceOverwrite = aForceOverwrite; | |||
public void setForceOverwrite(boolean forceOverwrite) { | |||
this.forceOverwrite = forceOverwrite; | |||
} | |||
/** | |||
@@ -311,24 +311,24 @@ public class Checksum extends MatchingTask implements Condition { | |||
* Add key-value pair to the hashtable upon which | |||
* to later operate upon. | |||
*/ | |||
private void addToIncludeFileMap(File aFile) throws BuildException { | |||
if (aFile != null) { | |||
if (aFile.exists()) { | |||
private void addToIncludeFileMap(File file) throws BuildException { | |||
if (file != null) { | |||
if (file.exists()) { | |||
if (property == null) { | |||
File dest = new File(aFile.getParent(), aFile.getName() + fileext); | |||
File dest = new File(file.getParent(), file.getName() + fileext); | |||
if (forceOverwrite || isCondition || | |||
(aFile.lastModified() > dest.lastModified())) { | |||
includeFileMap.put(aFile, dest); | |||
(file.lastModified() > dest.lastModified())) { | |||
includeFileMap.put(file, dest); | |||
} else { | |||
log(aFile + " omitted as " + dest + " is up to date.", | |||
log(file + " omitted as " + dest + " is up to date.", | |||
Project.MSG_VERBOSE); | |||
} | |||
} else { | |||
includeFileMap.put(aFile, property); | |||
includeFileMap.put(file, property); | |||
} | |||
} else { | |||
String message = "Could not find file " | |||
+ aFile.getAbsolutePath() | |||
+ file.getAbsolutePath() | |||
+ " to generate checksum for."; | |||
log(message); | |||
throw new BuildException(message, location); | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2000-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2000-2001 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -119,22 +119,22 @@ public class Copy extends Task { | |||
/** | |||
* Sets a single source file to copy. | |||
*/ | |||
public void setFile(File aFile) { | |||
this.file = aFile; | |||
public void setFile(File file) { | |||
this.file = file; | |||
} | |||
/** | |||
* Sets the destination file. | |||
*/ | |||
public void setTofile(File aDestFile) { | |||
this.destFile = aDestFile; | |||
public void setTofile(File destFile) { | |||
this.destFile = destFile; | |||
} | |||
/** | |||
* Sets the destination directory. | |||
*/ | |||
public void setTodir(File aDestDir) { | |||
this.destDir = aDestDir; | |||
public void setTodir(File destDir) { | |||
this.destDir = destDir; | |||
} | |||
/** | |||
@@ -175,8 +175,8 @@ public class Copy extends Task { | |||
/** | |||
* Sets filtering. | |||
*/ | |||
public void setFiltering(boolean aFiltering) { | |||
this.filtering = aFiltering; | |||
public void setFiltering(boolean filtering) { | |||
this.filtering = filtering; | |||
} | |||
/** | |||
@@ -193,8 +193,8 @@ public class Copy extends Task { | |||
* file will be copied into the "flattened" directory, unless | |||
* the forceoverwrite attribute is true. | |||
*/ | |||
public void setFlatten(boolean aFlatten) { | |||
this.flatten = aFlatten; | |||
public void setFlatten(boolean flatten) { | |||
this.flatten = flatten; | |||
} | |||
/** | |||
@@ -211,8 +211,8 @@ public class Copy extends Task { | |||
/** | |||
* Used to copy empty directories. | |||
*/ | |||
public void setIncludeEmptyDirs(boolean aIncludeEmpty) { | |||
this.includeEmpty = aIncludeEmpty; | |||
public void setIncludeEmptyDirs(boolean includeEmpty) { | |||
this.includeEmpty = includeEmpty; | |||
} | |||
/** | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2000-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2000-2001 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -264,15 +264,15 @@ public class Move extends Copy { | |||
* | |||
* @throws IOException | |||
*/ | |||
protected boolean renameFile(File sourceFile, File aDestFile, | |||
boolean aFiltering, boolean overwrite) | |||
protected boolean renameFile(File sourceFile, File destFile, | |||
boolean filtering, boolean overwrite) | |||
throws IOException, BuildException { | |||
boolean renamed = true; | |||
if (!aFiltering) { | |||
if (!filtering) { | |||
// ensure that parent dir of dest file exists! | |||
// not using getParentFile method to stay 1.1 compat | |||
String parentPath = aDestFile.getParent(); | |||
String parentPath = destFile.getParent(); | |||
if (parentPath != null) { | |||
File parent = new File(parentPath); | |||
if (!parent.exists()) { | |||
@@ -280,13 +280,13 @@ public class Move extends Copy { | |||
} | |||
} | |||
if (aDestFile.exists()) { | |||
if (!aDestFile.delete()) { | |||
if (destFile.exists()) { | |||
if (!destFile.delete()) { | |||
throw new BuildException("Unable to remove existing file " | |||
+ aDestFile); | |||
+ destFile); | |||
} | |||
} | |||
renamed = sourceFile.renameTo(aDestFile); | |||
renamed = sourceFile.renameTo(destFile); | |||
} else { | |||
renamed = false; | |||
} | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -88,18 +88,18 @@ public abstract class Unpack extends Task { | |||
* mechanism do the work and also to encapsulate operations on | |||
* the type in its own class. | |||
*/ | |||
public void setDest(String aDest) { | |||
public void setDest(String dest) { | |||
log("DEPRECATED - The setDest(String) method has been deprecated." | |||
+ " Use setDest(File) instead."); | |||
setDest(project.resolveFile(aDest)); | |||
setDest(project.resolveFile(dest)); | |||
} | |||
public void setSrc(File src) { | |||
source = src; | |||
} | |||
public void setDest(File aDest) { | |||
this.dest = aDest; | |||
public void setDest(File dest) { | |||
this.dest = dest; | |||
} | |||
private void validate() throws BuildException { | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -81,8 +81,8 @@ public class Os implements Condition { | |||
public Os() {} | |||
public Os(String aFamily) { | |||
setFamily(aFamily); | |||
public Os(String family) { | |||
setFamily(family); | |||
} | |||
/** | |||
@@ -104,8 +104,8 @@ public class Os implements Condition { | |||
* | |||
* @param name The OS name | |||
*/ | |||
public void setName(String aName) { | |||
this.name = aName.toLowerCase(Locale.US); | |||
public void setName(String name) { | |||
this.name = name.toLowerCase(Locale.US); | |||
} | |||
/** | |||
@@ -113,8 +113,8 @@ public class Os implements Condition { | |||
* | |||
* @param arch The OS architecture | |||
*/ | |||
public void setArch(String aArch) { | |||
this.arch = aArch.toLowerCase(Locale.US); | |||
public void setArch(String arch) { | |||
this.arch = arch.toLowerCase(Locale.US); | |||
} | |||
/** | |||
@@ -122,8 +122,8 @@ public class Os implements Condition { | |||
* | |||
* @param version The OS version | |||
*/ | |||
public void setVersion(String aVersion) { | |||
this.version = aVersion.toLowerCase(Locale.US); | |||
public void setVersion(String version) { | |||
this.version = version.toLowerCase(Locale.US); | |||
} | |||
/** | |||
@@ -141,8 +141,8 @@ public class Os implements Condition { | |||
* | |||
* @since 1.5 | |||
*/ | |||
public static boolean isFamily(String aFamily) { | |||
return isOs(aFamily, null, null, null); | |||
public static boolean isFamily(String family) { | |||
return isOs(family, null, null, null); | |||
} | |||
/** | |||
@@ -151,8 +151,8 @@ public class Os implements Condition { | |||
* | |||
* @since 1.7 | |||
*/ | |||
public static boolean isName(String aName) { | |||
return isOs(null, aName, null, null); | |||
public static boolean isName(String name) { | |||
return isOs(null, name, null, null); | |||
} | |||
/** | |||
@@ -161,8 +161,8 @@ public class Os implements Condition { | |||
* | |||
* @since 1.7 | |||
*/ | |||
public static boolean isArch(String aArch) { | |||
return isOs(null, null, aArch, null); | |||
public static boolean isArch(String arch) { | |||
return isOs(null, null, arch, null); | |||
} | |||
/** | |||
@@ -171,8 +171,8 @@ public class Os implements Condition { | |||
* | |||
* @since 1.7 | |||
*/ | |||
public static boolean isVersion(String aVersion) { | |||
return isOs(null, null, null, aVersion); | |||
public static boolean isVersion(String version) { | |||
return isOs(null, null, null, version); | |||
} | |||
/** | |||
@@ -186,46 +186,46 @@ public class Os implements Condition { | |||
* | |||
* @since 1.7 | |||
*/ | |||
public static boolean isOs(String aFamily, String aName, String aArch, | |||
String aVersion) { | |||
public static boolean isOs(String family, String name, String arch, | |||
String version) { | |||
boolean retValue = false; | |||
if (aFamily != null || aName != null || aArch != null | |||
|| aVersion != null) { | |||
if (family != null || name != null || arch != null | |||
|| version != null) { | |||
boolean isFamily = true; | |||
boolean isName = true; | |||
boolean isArch = true; | |||
boolean isVersion = true; | |||
if (aFamily != null) { | |||
if (aFamily.equals("windows")) { | |||
if (family != null) { | |||
if (family.equals("windows")) { | |||
isFamily = osName.indexOf("windows") > -1; | |||
} else if (aFamily.equals("os/2")) { | |||
} else if (family.equals("os/2")) { | |||
isFamily = osName.indexOf("os/2") > -1; | |||
} else if (aFamily.equals("netware")) { | |||
} else if (family.equals("netware")) { | |||
isFamily = osName.indexOf("netware") > -1; | |||
} else if (aFamily.equals("dos")) { | |||
} else if (family.equals("dos")) { | |||
isFamily = pathSep.equals(";") && !isFamily("netware"); | |||
} else if (aFamily.equals("mac")) { | |||
} else if (family.equals("mac")) { | |||
isFamily = osName.indexOf("mac") > -1; | |||
} else if (aFamily.equals("unix")) { | |||
} else if (family.equals("unix")) { | |||
isFamily = pathSep.equals(":") | |||
&& (!isFamily("mac") || osName.endsWith("x")); | |||
} else { | |||
throw new BuildException( | |||
"Don\'t know how to detect os family \"" | |||
+ aFamily + "\""); | |||
+ family + "\""); | |||
} | |||
} | |||
if (aName != null) { | |||
isName = aName.equals(osName); | |||
if (name != null) { | |||
isName = name.equals(osName); | |||
} | |||
if (aArch != null) { | |||
isArch = aArch.equals(osArch); | |||
if (arch != null) { | |||
isArch = arch.equals(osArch); | |||
} | |||
if (aVersion != null) { | |||
isVersion = aVersion.equals(osVersion); | |||
if (version != null) { | |||
isVersion = version.equals(osVersion); | |||
} | |||
retValue = isFamily && isName && isArch && isVersion; | |||
} | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
* Copyright (c) 2001 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
@@ -158,72 +158,72 @@ public class Translate extends MatchingTask { | |||
/** | |||
* Sets Family name of resource bundle | |||
*/ | |||
public void setBundle(String aBundle) { | |||
this.bundle = aBundle; | |||
public void setBundle(String bundle) { | |||
this.bundle = bundle; | |||
} | |||
/** | |||
* Sets locale specific language of resource bundle | |||
*/ | |||
public void setBundleLanguage(String aBundleLanguage ) { | |||
this.bundleLanguage = aBundleLanguage; | |||
public void setBundleLanguage(String bundleLanguage ) { | |||
this.bundleLanguage = bundleLanguage; | |||
} | |||
/** | |||
* Sets locale specific country of resource bundle | |||
*/ | |||
public void setBundleCountry(String aBundleCountry) { | |||
this.bundleCountry = aBundleCountry; | |||
public void setBundleCountry(String bundleCountry) { | |||
this.bundleCountry = bundleCountry; | |||
} | |||
/** | |||
* Sets locale specific variant of resource bundle | |||
*/ | |||
public void setBundleVariant(String aBundleVariant) { | |||
this.bundleVariant = aBundleVariant; | |||
public void setBundleVariant(String bundleVariant) { | |||
this.bundleVariant = bundleVariant; | |||
} | |||
/** | |||
* Sets Destination directory | |||
*/ | |||
public void setToDir(File aToDir) { | |||
this.toDir = aToDir; | |||
public void setToDir(File toDir) { | |||
this.toDir = toDir; | |||
} | |||
/** | |||
* Sets starting token to identify keys | |||
*/ | |||
public void setStartToken(String aStartToken) { | |||
this.startToken = aStartToken; | |||
public void setStartToken(String startToken) { | |||
this.startToken = startToken; | |||
} | |||
/** | |||
* Sets ending token to identify keys | |||
*/ | |||
public void setEndToken(String aEndToken) { | |||
this.endToken = aEndToken; | |||
public void setEndToken(String endToken) { | |||
this.endToken = endToken; | |||
} | |||
/** | |||
* Sets source file encoding scheme | |||
*/ | |||
public void setSrcEncoding(String aSrcEncoding) { | |||
this.srcEncoding = aSrcEncoding; | |||
public void setSrcEncoding(String srcEncoding) { | |||
this.srcEncoding = srcEncoding; | |||
} | |||
/** | |||
* Sets destination file encoding scheme. Defaults to source file | |||
* encoding | |||
*/ | |||
public void setDestEncoding(String aDestEncoding) { | |||
this.destEncoding = aDestEncoding; | |||
public void setDestEncoding(String destEncoding) { | |||
this.destEncoding = destEncoding; | |||
} | |||
/** | |||
* Sets Resource Bundle file encoding scheme | |||
*/ | |||
public void setBundleEncoding(String aBundleEncoding) { | |||
this.bundleEncoding = aBundleEncoding; | |||
public void setBundleEncoding(String bundleEncoding) { | |||
this.bundleEncoding = bundleEncoding; | |||
} | |||
/** | |||
@@ -231,8 +231,8 @@ public class Translate extends MatchingTask { | |||
* the source file as well as the resource bundle file? Defaults to | |||
* false. | |||
*/ | |||
public void setForceOverwrite(boolean aForceOverwrite) { | |||
this.forceOverwrite = aForceOverwrite; | |||
public void setForceOverwrite(boolean forceOverwrite) { | |||
this.forceOverwrite = forceOverwrite; | |||
} | |||
/** | |||
@@ -339,17 +339,17 @@ public class Translate extends MatchingTask { | |||
* but with bundle encoding also considered while loading. | |||
*/ | |||
private void loadResourceMaps() throws BuildException { | |||
Locale aLocale = new Locale(bundleLanguage, | |||
Locale locale = new Locale(bundleLanguage, | |||
bundleCountry, | |||
bundleVariant); | |||
String language = aLocale.getLanguage().length() > 0 ? | |||
"_" + aLocale.getLanguage() : | |||
String language = locale.getLanguage().length() > 0 ? | |||
"_" + locale.getLanguage() : | |||
""; | |||
String country = aLocale.getCountry().length() > 0 ? | |||
"_" + aLocale.getCountry() : | |||
String country = locale.getCountry().length() > 0 ? | |||
"_" + locale.getCountry() : | |||
""; | |||
String variant = aLocale.getVariant().length() > 0 ? | |||
"_" + aLocale.getVariant() : | |||
String variant = locale.getVariant().length() > 0 ? | |||
"_" + locale.getVariant() : | |||
""; | |||
String bundleFile = bundle + language + country + variant; | |||
processBundle(bundleFile, 0, false); | |||
@@ -365,16 +365,16 @@ public class Translate extends MatchingTask { | |||
//Load default locale bundle files | |||
//using default file encoding scheme. | |||
aLocale = Locale.getDefault(); | |||
locale = Locale.getDefault(); | |||
language = aLocale.getLanguage().length() > 0 ? | |||
"_" + aLocale.getLanguage() : | |||
language = locale.getLanguage().length() > 0 ? | |||
"_" + locale.getLanguage() : | |||
""; | |||
country = aLocale.getCountry().length() > 0 ? | |||
"_" + aLocale.getCountry() : | |||
country = locale.getCountry().length() > 0 ? | |||
"_" + locale.getCountry() : | |||
""; | |||
variant = aLocale.getVariant().length() > 0 ? | |||
"_" + aLocale.getVariant() : | |||
variant = locale.getVariant().length() > 0 ? | |||
"_" + locale.getVariant() : | |||
""; | |||
bundleEncoding = System.getProperty("file.encoding"); | |||
@@ -391,19 +391,18 @@ public class Translate extends MatchingTask { | |||
/** | |||
* Process each file that makes up this bundle. | |||
*/ | |||
private void processBundle(final String bundleFile, final int i, | |||
final boolean checkLoaded) | |||
throws BuildException { | |||
String lBundleFile = bundleFile + ".properties"; | |||
private void processBundle(String bundleFile, int i, | |||
boolean checkLoaded) throws BuildException { | |||
bundleFile += ".properties"; | |||
FileInputStream ins = null; | |||
try { | |||
ins = new FileInputStream(lBundleFile); | |||
ins = new FileInputStream(bundleFile); | |||
loaded = true; | |||
bundleLastModified[i] = new File(lBundleFile).lastModified(); | |||
log("Using " + lBundleFile, Project.MSG_DEBUG); | |||
bundleLastModified[i] = new File(bundleFile).lastModified(); | |||
log("Using " + bundleFile, Project.MSG_DEBUG); | |||
loadResourceMap(ins); | |||
} catch (IOException ioe) { | |||
log(lBundleFile + " not found.", Project.MSG_DEBUG); | |||
log(bundleFile + " not found.", Project.MSG_DEBUG); | |||
//if all resource files associated with this bundle | |||
//have been scanned for and still not able to | |||
//find a single resrouce file, throw exception | |||
@@ -525,49 +524,50 @@ public class Translate extends MatchingTask { | |||
srcEncoding)); | |||
String line; | |||
while((line = in.readLine()) != null) { | |||
StringBuffer newline = new StringBuffer(line); | |||
int startIndex = -1; | |||
int endIndex = -1; | |||
outer: while (true) { | |||
startIndex = line.indexOf(startToken, endIndex + 1); | |||
if (startIndex < 0 || | |||
startIndex + 1 >= line.length()) { | |||
break; | |||
} | |||
endIndex = line.indexOf(endToken, startIndex + 1); | |||
if (endIndex < 0) { | |||
break; | |||
} | |||
String matches = line.substring(startIndex + 1, | |||
endIndex); | |||
//If there is a white space or = or :, then | |||
//it isn't to be treated as a valid key. | |||
for (int k = 0; k < matches.length(); k++) { | |||
char c = matches.charAt(k); | |||
if (c == ':' || | |||
c == '=' || | |||
Character.isSpaceChar(c)) { | |||
endIndex = endIndex - 1; | |||
continue outer; | |||
} | |||
} | |||
String replace = null; | |||
replace = (String) resourceMap.get(matches); | |||
//If the key hasn't been loaded into resourceMap, | |||
//use the key itself as the value also. | |||
if (replace == null) { | |||
log("Warning: The key: " + matches | |||
+ " hasn't been defined.", | |||
Project.MSG_DEBUG); | |||
replace = matches; | |||
} | |||
line = line.substring(0, startIndex) | |||
+ replace | |||
+ line.substring(endIndex + 1); | |||
endIndex = startIndex + replace.length() + 1; | |||
if (endIndex + 1 >= line.length()) { | |||
break; | |||
outer: while (true) { | |||
startIndex = line.indexOf(startToken, endIndex + 1); | |||
if (startIndex < 0 || | |||
startIndex + 1 >= line.length()) { | |||
break; | |||
} | |||
endIndex = line.indexOf(endToken, startIndex + 1); | |||
if (endIndex < 0) { | |||
break; | |||
} | |||
String matches = line.substring(startIndex + 1, | |||
endIndex); | |||
//If there is a white space or = or :, then | |||
//it isn't to be treated as a valid key. | |||
for (int k = 0; k < matches.length(); k++) { | |||
char c = matches.charAt(k); | |||
if (c == ':' || | |||
c == '=' || | |||
Character.isSpaceChar(c)) { | |||
endIndex = endIndex - 1; | |||
continue outer; | |||
} | |||
} | |||
String replace = null; | |||
replace = (String) resourceMap.get(matches); | |||
//If the key hasn't been loaded into resourceMap, | |||
//use the key itself as the value also. | |||
if (replace == null) { | |||
log("Warning: The key: " + matches | |||
+ " hasn't been defined.", | |||
Project.MSG_DEBUG); | |||
replace = matches; | |||
} | |||
line = line.substring(0, startIndex) | |||
+ replace | |||
+ line.substring(endIndex + 1); | |||
endIndex = startIndex + replace.length() + 1; | |||
if (endIndex + 1 >= line.length()) { | |||
break; | |||
} | |||
} | |||
out.write(line); | |||
out.newLine(); | |||
} | |||