java.lang.Object
javax.swing.text.AbstractWriter
- 已知子类:
HTMLWriter
,MinimalHTMLWriter
AbstractWriter 是一个抽象类,它实际上完成写出包括属性在内的元素树的工作。对于每行写出多少,writer默认为100。但是这个值可以由子类设置。
-
字段摘要
字段 -
构造方法总结
构造方法修饰符构造方法描述protected
AbstractWriter
(Writer w, Document doc) 创建一个新的 AbstractWriter。protected
AbstractWriter
(Writer w, Document doc, int pos, int len) 创建一个新的 AbstractWriter。protected
AbstractWriter
(Writer w, Element root) 创建一个新的 AbstractWriter。protected
AbstractWriter
(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 void
indent()
是否缩进。protected boolean
该方法判断当前元素是否在指定范围内。protected boolean
如果当前行应被视为空,则返回 true。protected void
output
(char[] content, int start, int length) 写出内容的最后一站。protected void
setCanWrapLines
(boolean newValue) 设置是否可以换行。protected void
setCurrentLineLength
(int length) 设置当前行长度。protected void
setIndentSpace
(int space) 使子类能够指定缩进映射到多少个空格。protected void
setLineLength
(int l) 使子类能够设置每行要写入的字符数。void
setLineSeparator
(String value) 设置用于表示换行符的字符串。protected void
写出文本。protected abstract void
write()
这个抽象方法需要由子类来实现。protected void
write
(char ch) 写出一个字符。protected void
write
(char[] chars, int startIndex, int length) 所有的写方法都会调用这个方法。protected void
写出一个字符串。protected void
writeAttributes
(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
-