我正在尝试将URL中的文本分35行写入文本文件,然后按Enter键继续到下一批35行。如果我不尝试以35行为单位批量写入文件,则效果很好,并将所有内容写入文本文件。但是,当我尝试使用if语句以35批打印时,除非我按Enter 15次左右,否则它不会打印到文件中。即使那样,它也不能打印所有内容。我似乎与if语句有关,但我无法弄清楚。
import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { useTheme } from '@react-navigation/native'
export default class Home extends React.Component {
constructor(props) {
super(props)
this.state = {
theme: undefined
}
}
setTheme = theme => {
this.setState({theme})
}
render () {
console.log('theme', this.state.theme)
return (
<SafeAreaView>
<SetTheme setTheme={this.setTheme} />
<Text>Hello world</Text>
</SafeAreaView>
)
}
}
const SetTheme = ({ setTheme }) => {
const theme = useTheme()
React.useEffect(() => {
setTheme(theme)
return () => null
},[])
return null
}
答案 0 :(得分:1)
我不懂Java,但是.NET中有非常相似的概念。我认为这里有几件事情要考虑。
BufferWriter
不会立即写入文件,顾名思义,它充当缓冲区,随着时间的推移收集写请求,然后分批处理。 BufferWriter
有一个flush
方法可以立即将“排队”的写入刷新到文件-因此,当您达到35(每次写入都不要刷新)时,我会这样做。
另外,BufferedReader
和BufferedWriter
是可关闭的,因此请确保将它们包装在try
语句中,以确保正确地解锁/清除了资源。