java.lang.Object
javax.swing.text.AbstractWriter
- 已知子类:
HTMLWriter,MinimalHTMLWriter
AbstractWriter 是一个抽象类,它实际上完成写出包括属性在内的元素树的工作。对于每行写出多少,writer默认为100。但是这个值可以由子类设置。
-
字段摘要
字段 -
构造方法总结
构造方法修饰符构造方法描述protectedAbstractWriter(Writer w, Document doc) 创建一个新的 AbstractWriter。protectedAbstractWriter(Writer w, Document doc, int pos, int len) 创建一个新的 AbstractWriter。protectedAbstractWriter(Writer w, Element root) 创建一个新的 AbstractWriter。protectedAbstractWriter(Writer w, Element root, int pos, int len) 创建一个新的 AbstractWriter。 -
方法总结
修饰符和类型方法描述protected void减少缩进级别。protected boolean返回行是否可以换行。protected int返回当前行长度。protected Document获取文档。protected ElementIterator获取 ElementIterator。int返回要输出的最后一个偏移量。protected int返回当前缩进级别。protected int返回缩进的空间量。protected int返回最大行长度。返回用于表示换行符的字符串。int返回要输出的第一个偏移量。protected String返回与元素关联的文本。protected Writer返回用于输出内容的 Writer。protected void增加缩进级别。protected voidindent()是否缩进。protected boolean该方法判断当前元素是否在指定范围内。protected boolean如果当前行应被视为空,则返回 true。protected voidoutput(char[] content, int start, int length) 写出内容的最后一站。protected voidsetCanWrapLines(boolean newValue) 设置是否可以换行。protected voidsetCurrentLineLength(int length) 设置当前行长度。protected voidsetIndentSpace(int space) 使子类能够指定缩进映射到多少个空格。protected voidsetLineLength(int l) 使子类能够设置每行要写入的字符数。voidsetLineSeparator(String value) 设置用于表示换行符的字符串。protected void写出文本。protected abstract voidwrite()这个抽象方法需要由子类来实现。protected voidwrite(char ch) 写出一个字符。protected voidwrite(char[] chars, int startIndex, int length) 所有的写方法都会调用这个方法。protected void写出一个字符串。protected voidwriteAttributes(AttributeSet attr) 将属性集写出为“<name>=<value>”对。protected void写入行分隔符。
-
字段详细信息
-
NEWLINE
protected static final char NEWLINE文本包如何模拟换行符。- 参见:
-
-
构造方法详细信息
-
AbstractWriter
创建一个新的 AbstractWriter。使用文档的默认根初始化 ElementIterator。- 参数:
w- 作家。doc- 文档
-
AbstractWriter
创建一个新的 AbstractWriter。使用传入的元素初始化 ElementIterator。- 参数:
w- 作家doc- 一个元素pos- 文档中获取内容的位置。len- 要写出的数量。
-
AbstractWriter
创建一个新的 AbstractWriter。使用传入的元素初始化 ElementIterator。- 参数:
w- 作家root- 一个元素
-
AbstractWriter
创建一个新的 AbstractWriter。使用传入的元素初始化 ElementIterator。- 参数:
w- 作家root- 一个元素pos- 文档中获取内容的位置。len- 要写出的数量。
-
-
方法详情
-
getStartOffset
public int getStartOffset()返回要输出的第一个偏移量。- 返回:
- 要输出的第一个偏移量
- 自从:
- 1.3
-
getEndOffset
public int getEndOffset()返回要输出的最后一个偏移量。- 返回:
- 要输出的最后一个偏移量
- 自从:
- 1.3
-
getElementIterator
获取 ElementIterator。- 返回:
- 元素迭代器。
-
getWriter
返回用于输出内容的 Writer。- 返回:
- 用于输出内容的 Writer
- 自从:
- 1.3
-
getDocument
获取文档。- 返回:
- 文件。
-
inRange
该方法判断当前元素是否在指定范围内。当没有指定范围时,范围被初始化为整个文档。如果指定的范围与元素的范围相交,则 inRange() 返回 true。- 参数:
next- 一个元素。- 返回:
- 指示元素是否在范围内的boolean。
-
write
这个抽象方法需要由子类来实现。它的职责是遍历元素并使用 write() 方法生成所需格式的输出。- 抛出:
IOException- 如果发生 I/O 问题BadLocationException- 文档中的无效位置
-
getText
返回与元素关联的文本。这里假设元素是叶元素。遇到时抛出 BadLocationException。- 参数:
elem- 一个Element- 返回:
-
文本作为
String - 抛出:
BadLocationException- 如果 pos 表示文档中的无效位置
-
text
写出文本。如果在调用构造方法时指定了范围,则只会写出适当范围的文本。- 参数:
elem- 一个元素。- 抛出:
IOException- 出现任何 I/O 错误BadLocationException- 如果 pos 表示文档中的无效位置。
-
setLineLength
protected void setLineLength(int l) 使子类能够设置每行要写入的字符数。默认值为 100。- 参数:
l- 最大行长度。
-
getLineLength
protected int getLineLength()返回最大行长度。- 返回:
- 最大行长
- 自从:
- 1.3
-
setCurrentLineLength
protected void setCurrentLineLength(int length) 设置当前行长度。- 参数:
length- 新行长度- 自从:
- 1.3
-
getCurrentLineLength
protected int getCurrentLineLength()返回当前行长度。- 返回:
- 当前行长度
- 自从:
- 1.3
-
isLineEmpty
protected boolean isLineEmpty()如果当前行应被视为空,则返回 true。当getCurrentLineLength== 0 || 时为真indent已在空行上调用。- 返回:
- 如果当前行应被视为空行则为真
- 自从:
- 1.3
-
setCanWrapLines
protected void setCanWrapLines(boolean newValue) 设置是否可以换行。这可以在写行期间切换。例如,输出 HTML 可能会在输出带引号的字符串时将其设置为 false。- 参数:
newValue- 换行的新值- 自从:
- 1.3
-
getCanWrapLines
protected boolean getCanWrapLines()返回行是否可以换行。如果这是 false,则不会输出 lineSeparator。- 返回:
- 是否可以换行
- 自从:
- 1.3
-
setIndentSpace
protected void setIndentSpace(int space) 使子类能够指定缩进映射到多少个空格。发生缩进时,缩进级别将乘以此map。默认值为 2。- 参数:
space- 表示缩进映射空间的 int。
-
getIndentSpace
protected int getIndentSpace()返回缩进的空间量。- 返回:
- 缩进的空间量
- 自从:
- 1.3
-
setLineSeparator
设置用于表示换行符的字符串。这是在文档或系统属性 line.separator 的构造方法中初始化的。- 参数:
value- 新的行分隔符- 自从:
- 1.3
-
getLineSeparator
返回用于表示换行符的字符串。- 返回:
- 用于表示换行符的字符串
- 自从:
- 1.3
-
incrIndent
protected void incrIndent()增加缩进级别。如果缩进会导致getIndentSpace()*getIndentLevel()大于getLineLength()这将不会导致缩进。 -
decrIndent
protected void decrIndent()减少缩进级别。 -
getIndentLevel
protected int getIndentLevel()返回当前缩进级别。即incrIndent被调用的次数减去decrIndent被调用的次数。- 返回:
- 当前缩进级别
- 自从:
- 1.3
-
indent
是否缩进。写出的空格数是缩进级别乘以映射空间。如果当前行是空的,这不会使当前行仍然被认为是空的。- 抛出:
IOException- 出现任何 I/O 错误
-
write
写出一个字符。这是为了调用采用 char[] 的write方法而实现的。- 参数:
ch- 一个字符。- 抛出:
IOException- 出现任何 I/O 错误
-
write
写出一个字符串。这是为了调用采用 char[] 的write方法而实现的。- 参数:
content- 一个字符串。- 抛出:
IOException- 出现任何 I/O 错误
-
writeLineSeparator
写入行分隔符。这会直接调用output并将lineLength设置为 0。- 抛出:
IOException- 出现任何 I/O 错误- 自从:
- 1.3
-
write
所有的写方法都会调用这个方法。如果getCanWrapLines()返回 false,这将使用不包含换行符的每个chars序列调用output,然后调用writeLineSeparator。另一方面,如果getCanWrapLines()返回 true,这将根据需要拆分字符串,因此getLineLength得到尊重。唯一的例外是如果当前字符串不包含空格,并且不适合这种情况,行长度将超过getLineLength。- 参数:
chars- 要输出的字符startIndex- 起始索引length- 输出长度- 抛出:
IOException- 出现任何 I/O 错误- 自从:
- 1.3
-
writeAttributes
将属性集写出为“<name>=<value>”对。遇到时会抛出 IOException。- 参数:
attr- 一个属性集。- 抛出:
IOException- 出现任何 I/O 错误
-
output
写出内容的最后一站。所有写入方法最终都会进入此方法,该方法会在 Writer 上调用write。此方法还根据
length更新行长度。如果调用它来输出换行符,则当前行长度将需要重置,因为它将不再有效。如果由调用者来执行此操作。使用writeLineSeparator写出换行符,这将更新当前行的长度。- 参数:
content- 要输出的字符start- 起始索引length- 输出长度- 抛出:
IOException- 出现任何 I/O 错误- 自从:
- 1.3
-